Why do you suggest to stop using the string class completely?
A little research, on your part, would answer that. The destructor of the String class calls free(), but free() has some fundamental problems that cause the Arduino to crash. Nothing that the String class does can not be done using NULL terminated char arrays.