Actually, if the = is already overloaded he couldn't re overload it... he'd have to re-compile the string class with a new = operator.
What system, version of g++ and is it a call to the operator or the copy constructor?
operator=:
string A = "something";
string B;
B = A;
Copy constructor:
string A = "somehing";
string B = A;
You could always use a string stream, or the copy/copy_back STL functions (either from the class, or from the algorithum library [with iterators]), but I think you should just be able to find a fixed version of the string library for your system. Just some thoughts.