Index: trunk/MagicSoft/Mars/mbase/MEvtLoop.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 2411)
+++ trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 2416)
@@ -72,4 +72,5 @@
 #include <fstream>          // ofstream, SavePrimitive
 
+#include <TRint.h>          // gApplication, TRint::Class()
 #include <TTime.h>          // TTime
 #include <TFile.h>          // gFile
@@ -370,9 +371,13 @@
     gSystem->ProcessEvents();
 #else
-    if (fDisplay)
-        gSystem->ProcessEvents();
-    else
-        if (fProgress)
-            gClient->ProcessEventsFor(fProgress);
+    // FIXME: This is a workaround, because TApplication::Run is not thread safe against ProcessEvents
+    if (gApplication->InheritsFrom(TRint::Class()))
+    {
+        if (fDisplay)
+            gSystem->ProcessEvents();
+        else
+            if (fProgress)
+                gClient->ProcessEventsFor(fProgress);
+    }
 #endif
 
@@ -469,9 +474,13 @@
     {
         fProgress->SetPosition(maxcnt>0 ? TMath::Min(maxcnt, entries) : entries);
+        // FIXME: This is a workaround, because TApplication::Run is not thread safe against ProcessEvents
+        if (gApplication->InheritsFrom(TRint::Class()))
+        {
 #if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
-        gSystem->ProcessEvents();
+            gSystem->ProcessEvents();
 #else
-        gClient->ProcessEventsFor(fDisplay ? fDisplay->GetBar() : fProgress);
+            gClient->ProcessEventsFor(fDisplay ? fDisplay->GetBar() : fProgress);
 #endif
+        }
     }
 
Index: trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 2411)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 2416)
@@ -114,4 +114,5 @@
 TObject *MParContainer::Clone(const char *newname) const
 {
+
    MParContainer *named = (MParContainer*)TObject::Clone();
    if (newname && strlen(newname)) named->SetName(newname);
@@ -583,79 +584,2 @@
     return ((TEnv&)env).GetValue(prefix, dflt);
 }
-
-// --------------------------------------------------------------------------
-//
-// DrawTS which is a thread safe version of Draw. Draw
-// are also overwritten to call DrawTS. Please overwrite
-// the TS version of the member function if you want to implement
-// Draw for your class. Classes which overwrites Draw instead
-// should work well, too, except in multithreaded environments like Mona.
-//
-// The static version maybe called dor any TObject. For you class it is
-// called with a pointer to 'this' object.
-//
-void MParContainer::DrawTS(TObject *obj, TVirtualPad *pad, Option_t *option)
-{
-    if (!obj)
-    {
-        gLog << warn << "MParContainer::DrawTS: obj==NULL" << endl;
-        return;
-    }
-
-    if (!pad)
-        pad = gPad;
-
-    // FIXME: Move MH to mbase
-    //if (!pad)
-    //    pad = MakeDefCanvas(this);
-
-    if (!pad)
-    {
-        if (!gROOT->GetMakeDefCanvas())
-            return;
-        (gROOT->GetMakeDefCanvas())();
-        pad = gPad;
-    }
-
-    if (!pad->IsEditable())
-        return;
-
-    obj->SetBit(kMustCleanup);
-
-    pad->GetListOfPrimitives()->Add(obj, option);
-    pad->Modified(kTRUE);
-}
-
-// --------------------------------------------------------------------------
-//
-// DrawCloneTS which is a thread safe version of DrawClone. DrawClone
-// are also overwritten to call DrawCloneTS. Please overwrite
-// the TS version of the member function if you want to implement
-// DrawClone for your class. Classes which overwrites DrawClone instead
-// should work well, too, except in multithreaded environments like Mona
-//
-// The static version maybe called dor any TObject. For you class it is
-// called with a pointer to 'this' object.
-//
-TObject *MParContainer::DrawCloneTS(const TObject *obj, TVirtualPad *pad, Option_t *option)
-{
-    // Draw a clone of this object in the current pad
-    if (!obj)
-        return 0;
-
-    TObject *newobj = obj->Clone();
-    if (!newobj)
-        return 0;
-
-    /*
-     gLog << dbg << "MParConatiner::DrawCloneTS - ";
-     gLog << (int)newobj->InheritsFrom(MParContainer::Class()) << " ";
-     gLog << pad << endl;
-     */
-    if (newobj->InheritsFrom(MParContainer::Class()))
-        ((MParContainer*)newobj)->DrawTS(pad, strlen(option) ? option : obj->GetDrawOption());
-    else
-        DrawTS(newobj, pad, strlen(option) ? option : obj->GetDrawOption());
-
-    return newobj;
-}
Index: trunk/MagicSoft/Mars/mbase/MParContainer.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 2411)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 2416)
@@ -129,21 +129,4 @@
     const char *GetEnvValue(const TEnv &env, TString prefix, const char *dflt) const;
 
-    static  void DrawTS(TObject *obj, TVirtualPad *pad=NULL, Option_t *option="");
-    virtual void DrawTS(TVirtualPad *pad=NULL, Option_t *option="")
-    {
-        DrawTS(this, pad, option);
-    }
-    void Draw(Option_t *option="") { DrawTS(NULL, option); }
-
-    static  TObject *DrawCloneTS(const TObject *obj, TVirtualPad *pad=NULL, Option_t *option="");
-    virtual TObject *DrawCloneTS(TVirtualPad *pad=NULL, Option_t *option="") const
-    {
-        return DrawCloneTS(this, pad, option);
-    }
-    TObject *DrawClone(Option_t *option="") const
-    {
-        return DrawCloneTS(NULL, option);
-    }
-
     ClassDef(MParContainer, 0)  //The basis for all parameter containers
 };
