Index: /trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 753)
+++ /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 754)
@@ -152,5 +152,14 @@
 //  'name' is the name of the object you are searching for.
 //  If the object doesn't exist we try to create one from the
-//  dictionary. If this isn't possible NULL is returned
+//  dictionary. If this isn't possible NULL is returned.
+//
+//  By default (you don't specify an object name) the object name is
+//  the same as the classname
+//
+//  If the classname (default classname) is of the structure
+//  "Name;something" - containing a semicolon - evarything which is
+//  after the last appearance of a semicolon is stripped to get the
+//  Name of the Class. Normally this is used to number your objects.
+//  "Name;1", "Name;2", ...
 //
 MParContainer *MParList::FindCreateObj(const char *classname, const char *objname)
@@ -164,4 +173,20 @@
 
     //
+    // Check if the classname is a 'numbered' name (like: "MTime;2")
+    // if so strip the number from the classname.
+    //
+    // Becareful: We check for the last occurance of a ';' only and we
+    // also don't check if a number follows or something else.
+    //
+    // Rem: I use a TString to make the code more readyble and to get
+    // the new object deleted automatically
+    //
+    TString cname(classname);
+    const char *semicolon = strrchr(cname, ';');
+
+    if (semicolon)
+        cname.Remove(semicolon-cname);
+
+    //
     // Try to find a object with this object name which is already
     // in the List. If we can find one we are done.
@@ -175,10 +200,10 @@
     // if object is not existing in the list try to create one
     //
-    *fLog << dbginf << "'" << classname << "' not found... creating." << endl;
+    *fLog << dbginf << "Object '" << objname << "' of type '" << cname << "' not found... creating." << endl;
 
     //
     // try to get class from root environment
     //
-    TClass *cls = gROOT->GetClass(classname);
+    TClass *cls = gROOT->GetClass(cname);
 
     if (!cls)
@@ -187,5 +212,5 @@
         // if class is not existing in the root environment
         //
-        *fLog << dbginf << "Class '" << classname << "' not existing in dictionary." << endl;
+        *fLog << dbginf << "Class '" << cname << "' not existing in dictionary." << endl;
         return NULL;
     }
