I don't know much about Win32, but it sounds like STDERR is broken there. On Linux STDERR is virtually never broken unless you break it yourself. And if you do, there'll be hell to pay. Not too long ago I helped a co-worker track down a very difficult bug; in the end it turned out that he'd effectively closed STDERR and wasn't seeing the simple error message that would have helped him find the problem.