Index: trunk/MagicSoft/Mars/mhbase/MFillH.cc
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MFillH.cc	(revision 5971)
+++ trunk/MagicSoft/Mars/mhbase/MFillH.cc	(revision 5994)
@@ -358,4 +358,8 @@
 // if fDisplay is set and the MH-class overwrites the Draw function
 //
+// If the draw-option contains 'same' (case insensitive) a tab with the
+// same name as the one which would be created is searched and the
+// MH is drawn to this canvas. If it is not found a new tab is created.
+//
 Bool_t MFillH::DrawToDisplay()
 {
@@ -371,5 +375,13 @@
         return kTRUE;
 
-    fCanvas = &fDisplay->AddTab(fNameTab.IsNull() ? fH->GetName() : fNameTab.Data());
+    const TString tabname = fNameTab.IsNull() ? fH->GetName() : fNameTab.Data();
+
+    fCanvas = 0;
+    if (fDrawOption.Contains("same", TString::kIgnoreCase))
+        fCanvas = fDisplay->GetCanvas(tabname);
+    if (!fCanvas)
+        fCanvas = &fDisplay->AddTab(tabname);
+
+    fCanvas->cd();
     fH->Draw(fDrawOption);
 
Index: trunk/MagicSoft/Mars/mhbase/MH.cc
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MH.cc	(revision 5971)
+++ trunk/MagicSoft/Mars/mhbase/MH.cc	(revision 5994)
@@ -795,10 +795,10 @@
 // Also layout the two statistic boxes and a legend.
 //
-void MH::DrawSame(TH1 &hist1, TH1 &hist2, const TString title)
+void MH::DrawSame(TH1 &hist1, TH1 &hist2, const TString title, Bool_t same)
 {
     //
     // Draw first histogram
     //
-    hist1.Draw();
+    hist1.Draw(same?"same":"");
     gPad->SetBorderMode(0);
     gPad->Update();
Index: trunk/MagicSoft/Mars/mhbase/MH.h
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MH.h	(revision 5971)
+++ trunk/MagicSoft/Mars/mhbase/MH.h	(revision 5994)
@@ -85,5 +85,5 @@
 
     static void DrawSameCopy(const TH1 &hist1, const TH1 &hist2, const TString title);
-    static void DrawSame(TH1 &hist1, TH1 &hist2, const TString title);
+    static void DrawSame(TH1 &hist1, TH1 &hist2, const TString title, Bool_t same=kFALSE);
 
     TObject *Clone(const char *name="") const;
Index: trunk/MagicSoft/Mars/mhbase/MH3.cc
===================================================================
--- trunk/MagicSoft/Mars/mhbase/MH3.cc	(revision 5971)
+++ trunk/MagicSoft/Mars/mhbase/MH3.cc	(revision 5994)
@@ -103,7 +103,5 @@
 //
 MH3::MH3(const unsigned int dim)
-    : fDimension(dim>3?3:dim), fHist(NULL)/*,
-    fNameProfX(Form("ProfX_%p", this)),
-    fNameProfY(Form("ProfY_%p", this))*/
+    : fDimension(dim>3?3:dim), fHist(NULL)
 {  
     switch (fDimension)
@@ -205,5 +203,5 @@
 //
 MH3::MH3(const char *memberx, const char *membery)
-    : fDimension(2)/*, fNameProfX(Form("ProjX_%p", this)), fNameProfY(Form("ProjY_%p", this))*/
+    : fDimension(2)
 {
     fHist = new TH2F;
@@ -539,9 +537,16 @@
 
     TString str(o);
-    str = str.Strip(TString::kBoth);
-
-    Bool_t only = str.Contains("ONLY", TString::kIgnoreCase) && fDimension==2;
-    Bool_t same = str.Contains("SAME", TString::kIgnoreCase) && fDimension==2;
-    Bool_t blue = str.Contains("BLUE", TString::kIgnoreCase) && fDimension==2;
+    str.ToLower();
+
+    const Bool_t only  = str.Contains("only")  && fDimension==2;
+    const Bool_t same  = str.Contains("same")  && fDimension==2;
+    const Bool_t blue  = str.Contains("blue")  && fDimension==2;
+    const Bool_t profx = str.Contains("profx") && fDimension==2;
+    const Bool_t profy = str.Contains("profy") && fDimension==2;
+    // Do NOT replace 'same'-option
+    str.ReplaceAll("only",  "");
+    str.ReplaceAll("blue",  "");
+    str.ReplaceAll("profx", "");
+    str.ReplaceAll("profy", "");
 
     // FIXME: We may have to remove all our own options from str!
@@ -549,5 +554,5 @@
         fHist->Draw(str);
 
-    if (str.Contains("PROFX", TString::kIgnoreCase) && fDimension==2)
+    if (profx)
     {
         TProfile *p = ((TH2*)fHist)->ProfileX("ProfX", -1, 9999, "s");
@@ -563,5 +568,5 @@
         }
     }
-    if (str.Contains("PROFY", TString::kIgnoreCase) && fDimension==2)
+    if (profy)
     {
         TProfile *p = ((TH2*)fHist)->ProfileY("ProfY", -1, 9999, "s");
