To add to this growing post, I have run into similar issues when using std::string on VS2005 in debug mode. When the scope destructors are called the program aborts in the ~Tidy( ) function. This is only using std::strings and no QStrings what-so-ever. However, when I ran the same code on VS2003 it works just fine. The program also runs fine in release mode. I definatly believe it has something with VS implementation of std::string in converting it into a c_str( ). I am using Qt v4.3.0 as well, but I have to link to data libraries that return std::string's so dont assume that all people can get away from "crappy std::string/wstring". We have to make due.