Hm. VS.NET 2k3 is still one of the most compliant compilers I've used, but I've recently been finding bugs in its C++ support. Just now, I found out that using #warning gives you a fatal error, even though the documentation says it should work. If you have a class that derives from std::ostream and within that class you write *this << "this is a string\n";, then you will actually get the pointer address of the string "this is a string", because VS.NET 2k3 picks the wrong operator<< overload. Oops. You can workaround by getting a std::ostream& reference to *this and then using that to output. I found another issue that involves some crazy type traits and template specialization. Basically, VS.NET 2k3 isn't great at deciding that some complicated template expression is actually the same as a primitive type, such as float. Oh well, it's still got the best debugger and environment. Laura's the big two oh today! Happy Birthday to her!