Fixing preprocessor option

These commits fix #1997 and pure preprocessor handling is more correct afterwards.