correct me if I'm wrong (been a rather long time since I last used c++ :-P) but maybe you should clean up the char* yourself in that method or the destructor?

not sure if I'm saying something stupid anymore but java and .net have made me lazy over the years :-P