Index: trunk/Mars/mbase/MEvtLoop.cc
===================================================================
--- trunk/Mars/mbase/MEvtLoop.cc	(revision 13363)
+++ trunk/Mars/mbase/MEvtLoop.cc	(revision 13364)
@@ -283,5 +283,5 @@
 }
 
-Bool_t MEvtLoop::ProcessGuiEvents(Int_t num)
+Bool_t MEvtLoop::ProcessGuiEvents(Int_t num, Int_t looprc)
 {
     if (gROOT->IsBatch())
@@ -305,6 +305,9 @@
             // FALLTHROUGH
         case MStatusDisplay::kLoopStep:
-            if (fDisplay && fDisplay->CheckStatus()==MStatusDisplay::kLoopStep)
+            if (fDisplay && fDisplay->CheckStatus()==MStatusDisplay::kLoopStep && looprc!=kCONTINUE)
+            {
+                //fDisplay->ClearStatus();
                 fDisplay->SetPause();
+            }
             // FALLTHROUGH
         case MStatusDisplay::kLoopNone:
@@ -501,5 +504,5 @@
 
             numcnts++;
-            if (!ProcessGuiEvents(++dummy))
+            if (!ProcessGuiEvents(++dummy, rc))
                 break;
         }
@@ -513,5 +516,5 @@
 
             numcnts++;
-            if (!ProcessGuiEvents(maxcnt - dummy))
+            if (!ProcessGuiEvents(maxcnt - dummy, rc))
                 break;
         }
Index: trunk/Mars/mbase/MEvtLoop.h
===================================================================
--- trunk/Mars/mbase/MEvtLoop.h	(revision 13363)
+++ trunk/Mars/mbase/MEvtLoop.h	(revision 13364)
@@ -39,5 +39,5 @@
     void StreamPrimitive(ostream &out) const;
 
-    Bool_t ProcessGuiEvents(Int_t num);
+    Bool_t ProcessGuiEvents(Int_t num, Int_t rc);
 
 public:
Index: trunk/Mars/mbase/MStatusDisplay.h
===================================================================
--- trunk/Mars/mbase/MStatusDisplay.h	(revision 13363)
+++ trunk/Mars/mbase/MStatusDisplay.h	(revision 13364)
@@ -298,6 +298,7 @@
      // Eventloop interface
      Status_t CheckStatus() const { return fStatus; }
-     void ClearStatus() { fStatus = kLoopNone; }
-     void SetPause() { fStatus = kLoopPause; }
+     void ClearStatus() { fStatus=kLoopPause; ProcessMessageCommandMenu(kLoopPause); }
+     void SetPause() { fStatus=kLoopNone; ProcessMessageCommandMenu(kLoopPause); }
+     void SetLoopStep() { SetPause(); fStatus = kLoopStep; }
 
      void Lock() { fIsLocked++; }
