The IDE uses RegEx to find things that look like #include <blah.h> and then looks for all compilable files inside the library, then compiles them for you. It ignores other pre-processor but it stripes out all comments before doing the RegEx search

Thanks for trying to help with ideas like another include file. I understand ways to work around problems like this.

An IDE that implements a new language, "The Arduino programing language (based on Wiring)", should not be as flaky as this.

This is just one of many features/bugs that cause grief in the IDE. I posted this in the hope that someone in the Arduino group will improve the IDE.

Processing languages like this is not rocket science. Junior computer science students have learned this stuff from the Red Dragon Book since 1977. (Compilers: Principles, Techniques, and Tools by Aho, Sethi, and Ullman--also known as "The Red Dragon Book".)