Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 5911)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 5912)
@@ -1610,4 +1610,5 @@
     TVirtualPad *padsav = gPad;
     oldc.cd();
+    gPad = &oldc; // FIXME: Why is this necessary to make GetDrawOption work?
 
     //copy primitives
@@ -1705,5 +1706,5 @@
 // Writes the contents of a MStatusDisplay to a file.
 //
-Int_t MStatusDisplay::Write(Int_t num, const char *name, Int_t option, Int_t bufsize)
+Int_t MStatusDisplay::Write(Int_t num, const char *name, Int_t option, Int_t bufsize) const
 {
     if (!gFile)
Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 5911)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 5912)
@@ -161,5 +161,7 @@
      TCanvas *GetCanvas(const TString &name) const;
      TVirtualPad *GetFullPad(const Int_t canvas, const Int_t pad);
-     
+
+     Int_t Write(Int_t num, const char *name="MStatusDisplay", Int_t option=0, Int_t bufsize=0) const;
+
      Int_t Read(const char *name="MStatusDisplay");
      Int_t Write(const char *name="MStatusDisplay", Int_t option=0, Int_t bufsize=0)
@@ -167,5 +169,8 @@
          return Write(-1, name, option, bufsize);
      }
-     Int_t Write(Int_t num, const char *name="MStatusDisplay", Int_t option=0, Int_t bufsize=0);
+     Int_t Write(const char *name="MStatusDisplay", Int_t option=0, Int_t bufsize=0) const
+     {
+         return Write(-1, name, option, bufsize);
+     }
 
      Bool_t CdCanvas(const TString &name);
