Sadly that didn't help, and I'm still clueless. What it comes down to is this: why are neither __GLIBCPP__ nor __GLIBCXX__ getting defined after #including a standard lib header? Just thrashing around here: what happens if you try and compile the following test program with your "mingw on linux" install (don't bother with native Linux results, I know what happens then anyway): #include <utility> #ifdef __GLIBCPP__ #error "__GLIBCPP__ is defined" #endif #ifdef __GLIBCXX__ #error "__GLIBCPP__ is defined" #endif If neither #error is triggered, then what happens if you replace the #include <utility> with #include <string> ? If neither #error is triggered can you mail be (via private email, *not* to the list) the zipped-preprocessed source for the above program, again mingw only, no need for a Linux version. There's something very strange going on here for the std lib not to get detected, I just can't see what it is. BTW is the mingw install you're using available as an rpm or something? Is this something that's easy to reproduce? Thanks, John.