Index: trunk/MagicSoft/Mars/mbase/MEvtLoop.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 2054)
+++ trunk/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 2058)
@@ -108,5 +108,6 @@
     fName = name;
 
-    *fLog << inf << "Instantiated MEvtLoop (" << name << "), using ROOT v" << ROOTVER << endl;
+    fLog->Underline();
+    *fLog << inf << "Instantiated MEvtLoop (" << name << "), using ROOT v" << ROOTVER << "\033[0m" << endl;
 }
 
@@ -240,6 +241,6 @@
             return kTRUE;
         default:
+            *fLog << warn << "MEvtloop: fDisplay->ChecStatus() has returned unknown status #" << fDisplay->CheckStatus() << "... cleared." << endl;
             fDisplay->ClearStatus();
-            *fLog << warn << "Display shows unknown status... cleared." << endl;
             break;
         }
Index: trunk/MagicSoft/Mars/mbase/MLog.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MLog.cc	(revision 2054)
+++ trunk/MagicSoft/Mars/mbase/MLog.cc	(revision 2058)
@@ -80,5 +80,5 @@
 #include <pthread.h>
 #endif
-#include <TGListBox.h>
+#include <TGTextView.h>
 
 #include "MLogManip.h"
@@ -133,5 +133,5 @@
 // which is used for the output (i)
 //
-MLog::MLog(int i) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(i), fIsNull(kFALSE), fGuiLineId(0), fout(NULL), fOutAllocated(kFALSE), fgui(NULL), fNumLines(0)
+MLog::MLog(int i) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(i), fIsNull(kFALSE), fout(NULL), fOutAllocated(kFALSE), fgui(NULL), fNumLines(0)
 {
     Init();
@@ -143,5 +143,5 @@
 // ofstream as the default output device
 //
-MLog::MLog(ofstream &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fIsNull(kFALSE), fGuiLineId(0),  fout(&out), fOutAllocated(kFALSE), fgui(NULL), fNumLines(0)
+MLog::MLog(ofstream &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fIsNull(kFALSE), fout(&out), fOutAllocated(kFALSE), fgui(NULL), fNumLines(0)
 {
     Init();
@@ -151,7 +151,7 @@
 //
 // default constructor which initializes the streamer and sets the given
-// TGListBox as the default output device
-//
-MLog::MLog(TGListBox &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eGui), fGuiLineId(0),  fout(NULL), fOutAllocated(kFALSE), fgui(&out), fNumLines(0)
+// TGTextView as the default output device
+//
+MLog::MLog(TGTextView &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eGui), fout(NULL), fOutAllocated(kFALSE), fgui(&out), fNumLines(0)
 {
     Init();
@@ -164,5 +164,5 @@
 // or not.
 //
-MLog::MLog(const char *fname, int flag) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fIsNull(kFALSE), fGuiLineId(0),  fgui(NULL), fNumLines(0)
+MLog::MLog(const char *fname, int flag) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fIsNull(kFALSE), fgui(NULL), fNumLines(0)
 {
     Init();
@@ -193,4 +193,13 @@
     fDebugLevel  = log.fDebugLevel;
     fDevice      = log.fDevice;
+}
+
+void MLog::Underline()
+{
+    if (fDevice&eStdout)
+        cout << kUnderline;
+
+    if (fDevice&eStderr)
+        cerr << kUnderline;
 }
 
@@ -272,4 +281,5 @@
 }
 
+#include <TVirtualX.h>
 void MLog::UpdateGui()
 {
@@ -279,4 +289,6 @@
     // lock mutex
     Lock();
+
+    TGText &txt=*fgui->GetText();
 
     // copy lines to TGListBox
@@ -285,5 +297,5 @@
         // Replace all tabs by 7 white spaces
         fGuiLines[i]->ReplaceAll("\t", "       ");
-        fgui->AddEntry(*fGuiLines[i], fGuiLineId++);
+        txt.InsText(TGLongPosition(0, txt.RowCount()), *fGuiLines[i]);
         delete fGuiLines[i];
     }
@@ -292,8 +304,12 @@
     fNumLines=0;
 
-    // cut list box top 1000 lines
-    fgui->RemoveEntries(0, fGuiLineId-1000);
+    // cut text box top 1000 lines
+    while (txt.RowCount()>1000)
+        txt.DelLine(0);
+
     // show last entry
-    fgui->SetTopEntry(fGuiLineId-1);
+    fgui->Layout();
+    fgui->SetVsbPosition(txt.RowCount()-1);
+
     // tell a main loop, that list box contents have changed
     fgui->SetBit(kHasChanged);
Index: trunk/MagicSoft/Mars/mbase/MLog.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MLog.h	(revision 2054)
+++ trunk/MagicSoft/Mars/mbase/MLog.h	(revision 2058)
@@ -18,5 +18,5 @@
 
 
-class TGListBox;
+class TGTextView;
 
 class MLog : public streambuf, public ostream, public TObject
@@ -54,9 +54,7 @@
     Bool_t fIsNull;           //! Switch output completely off
 
-    Int_t fGuiLineId;         //!
-
-    ofstream  *fout;          //! possible file output stream
-    Bool_t     fOutAllocated; //! flag if fout is created by MLogging
-    TGListBox *fgui;          //! Listbox output
+    ofstream   *fout;          //! possible file output stream
+    Bool_t      fOutAllocated; //! flag if fout is created by MLogging
+    TGTextView *fgui;          //! Text View output
 
     Bool_t     fIsDirectGui;  //! Pipe text directly to the GUI (for single threaded environments)
@@ -84,5 +82,5 @@
     MLog(int i=eStdout);
     MLog(ofstream &out);
-    MLog(TGListBox &out);
+    MLog(TGTextView &out);
     MLog(const char *fname, int flag=-1);
 
@@ -97,4 +95,6 @@
     void UpdateGui();
 
+    void Underline();
+
     void SetDebugLevel(int i)           { fDebugLevel  =  i;  }
     int  GetDebugLevel() const          { return fDebugLevel; }
@@ -104,9 +104,9 @@
     void DisableOutputDevice(Flags_t f) { fDevice     &= ~f;  }
     void operator=(ofstream &out)       { SetOutputFile(out); }
-    void operator=(TGListBox *out)      { SetOutputGui(out);  }
+    void operator=(TGTextView *out)     { SetOutputGui(out);  }
 
     Bool_t IsOutputDeviceEnabled(int i) const { return fDevice & i; }
 
-    void SetOutputGui(TGListBox *out, int flag=-1)
+    void SetOutputGui(TGTextView *out, int flag=-1)
     {
         fgui = out;
