http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58283
--- Comment #4 from Jan Engelhardt <jengelh at inai dot de> --- >you cannot include a precompiled header from inside another header. Ok. So, this limitation was properly implemented in gcc 4.7, which simply skipped over the indirectly-included .gch file as if it did not exist. Safe thing to do. In gcc 4.8 however, the indirectly-included .gch *is* used rather than skipped, which I base upon the observation that compile time goes down significantly for projects with larger amounts of C++ code and the same indirect-inclusion scheme.