Index: trunk/MagicSoft/Mars/mhist/MH.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MH.cc	(revision 2090)
+++ trunk/MagicSoft/Mars/mhist/MH.cc	(revision 2098)
@@ -630,5 +630,5 @@
     // Draw second histogram
     //
-    ((TH1&)hist2).DrawCopy("sames");
+    TH1 *h2 = ((TH1&)hist2).DrawCopy("sames");
     gPad->Update();
 
@@ -642,6 +642,6 @@
                               s2.GetY1NDC()-0.01
                              );
-    l.AddEntry((TH1*)&hist1, hist1.GetTitle());
-    l.AddEntry((TH1*)&hist2, hist2.GetTitle());
+    l.AddEntry(h1, h1->GetTitle());
+    l.AddEntry(h2, h2->GetTitle());
     l.SetTextSize(s2.GetTextSize());
     l.SetTextFont(s2.GetTextFont());
@@ -749,4 +749,21 @@
 // --------------------------------------------------------------------------
 //
+// Encapsulate the TObject::Clone such, that a cloned TH1 (or derived)
+// object is not added to the current directory, when cloned.
+//
+TObject *MH::Clone(const char *name) const
+{
+    Bool_t store = TH1::AddDirectoryStatus();
+    TH1::AddDirectory(kFALSE);
+
+    TObject *o = MParContainer::Clone(name);
+
+    TH1::AddDirectory(store);
+
+    return o;
+}
+
+// --------------------------------------------------------------------------
+//
 // If the opt string contains 'nonew' or gPad is not given a new canvas
 // with size w/h is created. Otherwise the object is cloned and drawn
@@ -763,12 +780,6 @@
     gROOT->SetSelectedPad(NULL);
 
-    Bool_t store = TH1::AddDirectoryStatus();
-    TH1::AddDirectory(kFALSE);
-
     TObject *o = MParContainer::DrawClone(opt);
     o->SetBit(kCanDelete);
-
-    TH1::AddDirectory(store);
-
     return o;
 }
Index: trunk/MagicSoft/Mars/mhist/MH.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MH.h	(revision 2090)
+++ trunk/MagicSoft/Mars/mhist/MH.h	(revision 2098)
@@ -61,4 +61,6 @@
     static void Draw(TH1 &hist1, TH1 &hist2, const TString title);
 
+    TObject *Clone(const char *name="") const;
+
     void Draw(Option_t *o="") { MParContainer::Draw(o); }
     TObject *DrawClone(Option_t *opt, Int_t w, Int_t h) const;
