Index: trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1542)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1574)
@@ -435,2 +435,12 @@
     arr.Compress();
 }
+
+// --------------------------------------------------------------------------
+//
+// Creates a new instance of this class. The idea is to create a clone of
+// this class in its initial state.
+//
+MParContainer *MParContainer::New() const
+{
+    return (MParContainer*)IsA()->New();
+}
Index: trunk/MagicSoft/Mars/mbase/MParContainer.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 1542)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 1574)
@@ -70,4 +70,5 @@
     virtual void        SavePrimitive(ofstream &out, Option_t *o="");
 
+    virtual MParContainer *New() const;
     virtual void   SetLogStream(MLog *lg) { fLog = lg; }
     virtual void   Reset() { }
Index: trunk/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1542)
+++ trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1574)
@@ -122,4 +122,28 @@
 // --------------------------------------------------------------------------
 //
+// Using this overloaded member function you may cascade several branches
+// in acomma seperated list, eg: "MMcEvt.fTheta,MMcEvt.fEnergy"
+//
+// For moredetailed information see AddToBranchList(const char *b);
+//
+void MTask::AddToBranchList(const TString &str)
+{
+    TString s = str;
+
+    while (1)
+    {
+        Int_t fst = s.First(',');
+
+        if (fst<0)
+            return;
+
+        AddToBranchList(TString(s(0, fst)));
+
+        s.Remove(0, fst+1);
+    }
+}
+
+// --------------------------------------------------------------------------
+//
 // Copy constructor.
 //
Index: trunk/MagicSoft/Mars/mbase/MTask.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.h	(revision 1542)
+++ trunk/MagicSoft/Mars/mbase/MTask.h	(revision 1574)
@@ -35,8 +35,5 @@
 protected:
     void AddToBranchList(const char *b);
-    void AddToBranchList(const TString &str)
-    {
-        AddToBranchList((const char*)str);
-    }
+    void AddToBranchList(const TString &str);
     void AddToBranchList(const char *master, const char *sub, const UInt_t first, const UInt_t last)
     {
