fix a bug in preprocessor