Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 8677)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 8678)
@@ -702,6 +702,4 @@
     fBatch = new TList;
     fBatch->SetOwner();
-    fBatch->SetBit(kMustCleanup);
-    gROOT->GetListOfCleanups()->Add(fBatch);
 
     //
@@ -1026,5 +1024,17 @@
         const UInt_t ch = 2*cw/3 + 25; // 25: Menu, etc
 
-        TCanvas *c = new TCanvas(name, name, -cw, ch);
+        // The constructor of TCanvas adds the canvas to th eglobal list
+        // of canvases gROOT->GetListOfCanvases(). If a canvas with an
+        // identical name exists already in this list, the canvas is
+        // deleted. In normal operation this might make sense and doesn't harm
+        // because the embedded canvases behave different.
+        // By creating the canvas without a name it is made sure that no
+        // older canvas/tab vanished silently from the system (deleted from
+        // the construtor). To make the handling of our canvases nevertheless
+        // work well the name is set later. The list of canvases is also
+        // part of the list of cleanups, thus fBatch need not to be added
+        // to the list of cleanups.
+        TCanvas *c = new TCanvas("", name, -cw, ch);
+        c->SetName(name);
         fBatch->Add(c);
         return *c;
