Index: code/branches/testing/src/libraries/util/UtilPrereqs.h
===================================================================
--- code/branches/testing/src/libraries/util/UtilPrereqs.h	(revision 9535)
+++ code/branches/testing/src/libraries/util/UtilPrereqs.h	(revision 9536)
@@ -85,7 +85,11 @@
 {
     class AdditionalContextListener;
+    class BaseWriter;
     class Clock;
+    class ConsoleWriter;
     class Exception;
     class ExprParser;
+    class LogWriter;
+    class MemoryWriter;
     class MultiType;
     class OutputListener;
@@ -102,4 +106,5 @@
     template <class T>
     class Singleton;
+    class SubcontextOutputListener;
     class SubString;
 }
Index: code/branches/testing/src/libraries/util/output/ConsoleWriter.cc
===================================================================
--- code/branches/testing/src/libraries/util/output/ConsoleWriter.cc	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/ConsoleWriter.cc	(revision 9536)
@@ -66,13 +66,4 @@
 
     /**
-        @brief Returns the only existing instance of this class.
-    */
-    /*static*/ ConsoleWriter& ConsoleWriter::getInstance()
-    {
-        static ConsoleWriter instance;
-        return instance;
-    }
-
-    /**
         @brief Inherited function from BaseWriter, writes output to the console using std::cout.
     */
Index: code/branches/testing/src/libraries/util/output/ConsoleWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/ConsoleWriter.h	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/ConsoleWriter.h	(revision 9536)
@@ -54,6 +54,4 @@
             virtual ~ConsoleWriter();
 
-            static ConsoleWriter& getInstance();
-
             void enable();
             void disable();
Index: code/branches/testing/src/libraries/util/output/LogWriter.cc
===================================================================
--- code/branches/testing/src/libraries/util/output/LogWriter.cc	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/LogWriter.cc	(revision 9536)
@@ -76,13 +76,4 @@
 
     /**
-        @brief Returns the only existing instance of this class.
-    */
-    /*static*/ LogWriter& LogWriter::getInstance()
-    {
-        static LogWriter instance;
-        return instance;
-    }
-
-    /**
         @brief Opens the log-file in order to write output to it.
     */
@@ -133,5 +124,5 @@
 
         // request old output from MemoryWriter
-        MemoryWriter::getInstance().resendOutput(this);
+        OutputManager::getInstance().getMemoryWriter().resendOutput(this);
     }
 
Index: code/branches/testing/src/libraries/util/output/LogWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/LogWriter.h	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/LogWriter.h	(revision 9536)
@@ -61,6 +61,4 @@
             virtual ~LogWriter();
 
-            static LogWriter& getInstance();
-
             void setLogPath(const std::string& path);
 
Index: code/branches/testing/src/libraries/util/output/MemoryWriter.cc
===================================================================
--- code/branches/testing/src/libraries/util/output/MemoryWriter.cc	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/MemoryWriter.cc	(revision 9536)
@@ -53,13 +53,4 @@
 
     /**
-        @brief Returns the only existing instance of this singleton class.
-    */
-    /*static*/ MemoryWriter& MemoryWriter::getInstance()
-    {
-        static MemoryWriter instance;
-        return instance;
-    }
-
-    /**
         @brief Implementation of the output() function inherited from OutputListener, stores the received output in memory.
     */
Index: code/branches/testing/src/libraries/util/output/MemoryWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/MemoryWriter.h	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/MemoryWriter.h	(revision 9536)
@@ -71,6 +71,4 @@
             virtual ~MemoryWriter();
 
-            static MemoryWriter& getInstance();
-
             void resendOutput(OutputListener* listener) const;
             void disable();
Index: code/branches/testing/src/libraries/util/output/OutputManager.cc
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputManager.cc	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/OutputManager.cc	(revision 9536)
@@ -88,8 +88,38 @@
         static OutputManager& instance = OutputManager::getInstance();
 
-        static MemoryWriter& memoryWriterInstance = MemoryWriter::getInstance(); (void)memoryWriterInstance;
-        static ConsoleWriter& consoleWriterInstance = ConsoleWriter::getInstance(); (void)consoleWriterInstance;
-        static LogWriter& logWriterInstance = LogWriter::getInstance(); (void)logWriterInstance;
-
+        static MemoryWriter& memoryWriterInstance = OutputManager::getInstance().getMemoryWriter(); (void)memoryWriterInstance;
+        static ConsoleWriter& consoleWriterInstance = OutputManager::getInstance().getConsoleWriter(); (void)consoleWriterInstance;
+        static LogWriter& logWriterInstance = OutputManager::getInstance().getLogWriter(); (void)logWriterInstance;
+
+        return instance;
+    }
+
+    /**
+     * @brief Returns the main instance of MemoryWriter which is managed by the OutputManager singleton.
+     * @note If OutputManager is ever un-singletonized, this instance must not remain static.
+     */
+    MemoryWriter& OutputManager::getMemoryWriter()
+    {
+        static MemoryWriter instance;
+        return instance;
+    }
+
+    /**
+     * @brief Returns the main instance of ConsoleWriter which is managed by the OutputManager singleton.
+     * @note If OutputManager is ever un-singletonized, this instance must not remain static.
+     */
+    ConsoleWriter& OutputManager::getConsoleWriter()
+    {
+        static ConsoleWriter instance;
+        return instance;
+    }
+
+    /**
+     * @brief Returns the main instance of LogWriter which is managed by the OutputManager singleton.
+     * @note If OutputManager is ever un-singletonized, this instance must not remain static.
+     */
+    LogWriter& OutputManager::getLogWriter()
+    {
+        static LogWriter instance;
         return instance;
     }
Index: code/branches/testing/src/libraries/util/output/OutputManager.h
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputManager.h	(revision 9535)
+++ code/branches/testing/src/libraries/util/output/OutputManager.h	(revision 9536)
@@ -72,4 +72,8 @@
             static OutputManager& getInstanceAndCreateListeners();
 
+            MemoryWriter& getMemoryWriter();
+            ConsoleWriter& getConsoleWriter();
+            LogWriter& getLogWriter();
+
             void pushMessage(OutputLevel level, const OutputContextContainer& context, const std::string& message);
 
