Index: trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 2410)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 2411)
@@ -584,4 +584,15 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// 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)
 {
@@ -616,4 +627,15 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// 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)
 {
Index: trunk/MagicSoft/Mars/mbase/MParContainer.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 2410)
+++ trunk/MagicSoft/Mars/mbase/MParContainer.h	(revision 2411)
@@ -129,4 +129,21 @@
     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
 };
Index: trunk/MagicSoft/Mars/mgui/MCamEvent.h
===================================================================
--- trunk/MagicSoft/Mars/mgui/MCamEvent.h	(revision 2410)
+++ trunk/MagicSoft/Mars/mgui/MCamEvent.h	(revision 2411)
@@ -12,5 +12,5 @@
 public:
     virtual Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const = 0;
-    virtual void   DrawPixelContent(Int_t num) const = 0;
+    virtual void   DrawPixelContent(Int_t num, TVirtualPad *pad=NULL) const = 0;
 
     ClassDef(MCamEvent, 0) // A camera event
