Index: /trunk/FACT++/src/Console.h
===================================================================
--- /trunk/FACT++/src/Console.h	(revision 11579)
+++ /trunk/FACT++/src/Console.h	(revision 11580)
@@ -12,4 +12,6 @@
 public:
     ConsoleStream(const char *name);
+
+    void SetNullOutput(bool null) { fLogO.SetNullOutput(null); }
 
     // I/O
Index: /trunk/FACT++/src/LocalControl.h
===================================================================
--- /trunk/FACT++/src/LocalControl.h	(revision 11579)
+++ /trunk/FACT++/src/LocalControl.h	(revision 11580)
@@ -154,6 +154,6 @@
 {
 public:
-    LocalStream(const char *name, bool = false)
-        : LocalControl<ConsoleStream>(name) { }
+    LocalStream(const char *name, bool null = false)
+        : LocalControl<ConsoleStream>(name) { SetNullOutput(null); }
 };
 
Index: /trunk/FACT++/src/Main.h
===================================================================
--- /trunk/FACT++/src/Main.h	(revision 11579)
+++ /trunk/FACT++/src/Main.h	(revision 11580)
@@ -20,4 +20,5 @@
             ("host",      var<string>(""),                "Address with which the Dim nameserver can connect to this host (overwites DIM_HOST_NODE environment variable)")
             ("log,l",     var<string>(n), "Write log-file")
+            ("null",      po_switch(),    "Suppresses almost all console output - including errors (only available without --console option)")
             ("console,c", var<int>(),     "Use console (0=shell, 1=simple buffered, X=simple unbuffered)")
             ("cmd",       vars<string>(), "Execute one or more commands at startup")
@@ -47,15 +48,24 @@
         // -----------------------------------------------------------------
 
+        cout << conf.Has("console") << endl;
+        cout << conf.Has("null") << endl;
         static T shell(conf.GetName().c_str(),
-                   conf.Has("console") ? conf.Get<int>("console")!=1 : 0);
+                   conf.Has("console") ? conf.Get<int>("console")!=1 : conf.Get<bool>("null"));
 
         WindowLog &win  = shell.GetStreamIn();
         WindowLog &wout = shell.GetStreamOut();
 
+        // Switching off buffering is not strictly necessary, since
+        // the destructor of shell should flush everything still buffered,
+        // nevertheless it helps to debug problems in the initialization
+        // sequence.
         const bool backlog = wout.GetBacklog();
         const bool null    = wout.GetNullOutput();
-        wout.SetBacklog(false);
-        wout.SetNullOutput(false);
-        wout.Display(true);
+        if (conf.Has("console") || !conf.Get<bool>("null"))
+        {
+            wout.SetBacklog(false);
+            wout.SetNullOutput(false);
+            wout.Display(true);
+        }
 
         if (conf.Has("log"))
@@ -116,6 +126,9 @@
         io_service.Message("==================== Starting main loop =================");
 
-        wout.SetNullOutput(null);
-        wout.SetBacklog(backlog);
+        if (conf.Has("console") || !conf.Get<bool>("null"))
+        {
+            wout.SetNullOutput(null);
+            wout.SetBacklog(backlog);
+        }
 
         shell.SetReceiver(io_service);
