Hmm, So you are comparing two std::string by pointer equality on their c_str()? Note that with the new C++ ABI now in effect the std::string implementation changed so you might have relied on an implementation detail here (the old string was referenced counted copy-on-write while the new isn't). So ... /** * !!! It should actualy be const !!! * But that way default copy and assingment can be used. **/ std::string _name; you are hit by this maybe? With the old std::string copying/assigning would have retained c_str () but the new std::string will copy.