Index: trunk/FACT++/src/Console.cc
===================================================================
--- trunk/FACT++/src/Console.cc	(revision 14080)
+++ trunk/FACT++/src/Console.cc	(revision 14083)
@@ -82,4 +82,19 @@
 }
 
+void Console::Lock()
+{
+    // FIXME: Check missing
+    fLogO.Display(true);
+    fLogO.SetBacklog(false);
+    fLogO.SetNullOutput(false);
+}
+
+void Console::Unlock()
+{
+    // FIXME: Check missing
+    fLogO.SetNullOutput(true);
+    fLogO.SetBacklog(true);
+}
+
 // --------------------------------------------------------------------------
 //
@@ -96,10 +111,7 @@
     if (str.substr(0, 3)==".w ")
     {
-        fLogO.Display(true);
-        fLogO.SetBacklog(false);
-        fLogO.SetNullOutput(false);
+        Lock();
         usleep(stoul(str.substr(3))*1000);
-        fLogO.SetNullOutput(true);
-        fLogO.SetBacklog(true);
+        Unlock();
         return true;
     }
@@ -205,4 +217,8 @@
 // **************************************************************************
 
+ConsoleStream::~ConsoleStream()
+{
+    fLogO.Display();
+}
 
 // --------------------------------------------------------------------------
Index: trunk/FACT++/src/Console.h
===================================================================
--- trunk/FACT++/src/Console.h	(revision 14080)
+++ trunk/FACT++/src/Console.h	(revision 14083)
@@ -14,4 +14,5 @@
 public:
     ConsoleStream(const char *name);
+    ~ConsoleStream();
 
     void SetNullOutput(bool null) { fLogO.SetNullOutput(null); }
@@ -24,5 +25,7 @@
     const WindowLog &GetStreamIn()  const { return fLogO; }
 
+    void Lock() { }
     void Run(const char * = 0);
+    void Unlock() { }
 };
 
@@ -59,5 +62,7 @@
     bool PrintKeyBindings();
 
+    void Lock();
     bool Process(const std::string &str);
+    void Unlock();
 
     std::string GetLinePrompt() const;
