Index: trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 7178)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 7179)
@@ -229,7 +229,6 @@
     // point to a random memory segment, because the TString has gone.
     //
-    MString desc;
-    desc.Print("%s [%s]", o.GetName(), o.ClassName());
-    return (TString)o.GetName()==o.ClassName() ? o.ClassName() : desc;
+    return (TString)o.GetName()==o.ClassName() ? (TString)o.ClassName() :
+        MString::Form("%s [%s]", o.GetName(), o.ClassName());
 }
 
Index: trunk/MagicSoft/Mars/mbase/MString.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MString.h	(revision 7178)
+++ trunk/MagicSoft/Mars/mbase/MString.h	(revision 7179)
@@ -12,4 +12,7 @@
 {
 public:
+    MString(const char *txt=0)  : TString(txt) { }
+    MString(const TString &txt) : TString(txt) { }
+
     MString &Print(const char *fmt, va_list &ap);
     MString &Print(const char *fmt, ...);
Index: trunk/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 7178)
+++ trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 7179)
@@ -356,9 +356,9 @@
     //
     if (fName==ClassName())
-        return fSerialNumber==0 ? ClassName() : MString::Form("%s;%d", ClassName(), fSerialNumber);
+        return fSerialNumber==0 ? (TString)ClassName() : MString::Form("%s;%d", ClassName(), fSerialNumber);
 
     return fSerialNumber>0 ?
         MString::Form("%s;%d [%s]", fName.Data(), fSerialNumber, ClassName()) :
-        MString::Form("%s [%s]", fName.Data(), ClassName());
+        MString::Form("%s [%s]",    fName.Data(), ClassName());
 }
 
