According to the documentation (http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html), creating a precompiled header is done by invoking GCC on the header the same way you'd compile a file. So, the command line /opt/mingw/i386-mingw32msvc/bin/gcc -fshort-wchar -xc++ -D_MSC_VER=0x0500 -I../../PUBINC -I../NEO/NeoIncludes -I../NEO/NeoIncludes/ibmpc -I../NEO/NeoIncludes/ibmpc/Alone -I../NEO/NeoExtras TGEQWin32.h should produce a a precompiled header called "TGEQWin32.h.gch". It doesn't. Instead, GCC tries to link the header file with the standard libraries to produce an executable. Am I doing something stupid here, or is this a bug? I'm using GCC 3.4.2 configured as a cross-compiler to create Windows executables on a Mac computer. Thanks, Mark