Index: /code/branches/output/src/libraries/core/LuaState.cc
===================================================================
--- /code/branches/output/src/libraries/core/LuaState.cc	(revision 8800)
+++ /code/branches/output/src/libraries/core/LuaState.cc	(revision 8801)
@@ -239,5 +239,5 @@
     void LuaState::luaLog(unsigned int level, const std::string& message)
     {
-#pragma message(__FILE__ "("BOOST_PP_STRINGIZE(__LINE__)") : Warning: TODO: use correct level (and remove boost include)")
+#pragma message(__FILE__ "("BOOST_PP_STRINGIZE(__LINE__)") : Warning: TODO: use correct level, inspect lua support (and remove boost include)")
         orxout(debug_output, context::lua) << "luaLog (level: " << level << "): " << message << endl;
     }
Index: /code/branches/output/src/libraries/core/command/IOConsoleWindows.cc
===================================================================
--- /code/branches/output/src/libraries/core/command/IOConsoleWindows.cc	(revision 8800)
+++ /code/branches/output/src/libraries/core/command/IOConsoleWindows.cc	(revision 8801)
@@ -214,6 +214,6 @@
 
             case Shell::Verbose:         colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
-            case Shell::VerboseMore:     colour = 0                    | 0              | 0                | FOREGROUND_BLUE; break;
-            case Shell::VerboseUltra:    colour = 0                    | 0              | 0                | FOREGROUND_BLUE; break;
+            case Shell::VerboseMore:     colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
+            case Shell::VerboseUltra:    colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
 
             case Shell::Command:         colour = FOREGROUND_INTENSITY | FOREGROUND_RED | 0                | FOREGROUND_BLUE; break;
Index: /code/branches/output/src/libraries/core/command/Shell.cc
===================================================================
--- /code/branches/output/src/libraries/core/command/Shell.cc	(revision 8800)
+++ /code/branches/output/src/libraries/core/command/Shell.cc	(revision 8801)
@@ -33,4 +33,6 @@
 
 #include "Shell.h"
+
+#include <boost/preprocessor/stringize.hpp>
 
 #include "util/Math.h"
@@ -48,4 +50,5 @@
 namespace orxonox
 {
+#pragma message(__FILE__ "("BOOST_PP_STRINGIZE(__LINE__)") : Warning: TODO: add commands again, inspect tcl support (and remove boost include)")
 //    SetConsoleCommand("log",     OutputHandler::log    );
 //    SetConsoleCommand("error",   OutputHandler::error  ).hide();
@@ -251,10 +254,22 @@
 
     /**
-        @brief Sends output to the internal output buffer.
+        @brief Adds multiple lines to the internal output buffer.
     */
     void Shell::addOutput(const std::string& text, LineType type)
     {
+        std::vector<std::string> lines;
+        vectorize(text, '\n', &lines);
+
+        for (size_t i = 0; i < lines.size(); ++i)
+            this->addLine(lines[i], type);
+    }
+
+    /**
+        @brief Adds a line to the internal output buffer.
+    */
+    void Shell::addLine(const std::string& line, LineType type)
+    {
         // yes it was - push the new line to the list
-        this->outputLines_.push_front(std::make_pair(text, static_cast<LineType>(type)));
+        this->outputLines_.push_front(std::make_pair(line, static_cast<LineType>(type)));
 
         // adjust the scroll position if needed
@@ -286,5 +301,5 @@
     void Shell::printLine(const std::string& line, OutputLevel level)
     {
-        this->addOutput(line, static_cast<LineType>(level));
+        this->addLine(line, static_cast<LineType>(level));
     }
 
Index: /code/branches/output/src/libraries/core/command/Shell.h
===================================================================
--- /code/branches/output/src/libraries/core/command/Shell.h	(revision 8800)
+++ /code/branches/output/src/libraries/core/command/Shell.h	(revision 8801)
@@ -132,4 +132,5 @@
 
             void addOutput(const std::string& text, LineType type = DebugOutput);
+            void addLine(const std::string& line, LineType type = DebugOutput);
             void clearOutput();
 
Index: /code/branches/output/src/libraries/util/StringUtils.cc
===================================================================
--- /code/branches/output/src/libraries/util/StringUtils.cc	(revision 8800)
+++ /code/branches/output/src/libraries/util/StringUtils.cc	(revision 8801)
@@ -79,4 +79,14 @@
         for (; pos2 > 0         && (str[pos2] == ' ' || str[pos2] == '\t' || str[pos2] == '\n'); pos2--);
         return str.substr(pos1, pos2 - pos1 + 1);
+    }
+
+    /// Splits a given string by a delimiter and stores it in an output vector
+    void vectorize(const std::string& str, char delimiter, std::vector<std::string>* output)
+    {
+        for (size_t start = 0, end = 0; end != std::string::npos; start = end + 1)
+        {
+            end = str.find_first_of(delimiter, start);
+            output->push_back(str.substr(start, end - start));
+        }
     }
 
@@ -517,5 +527,5 @@
         return matrix[(rows-1)*cols + cols-1];
     }
-    
+
     /**
     @brief
Index: /code/branches/output/src/libraries/util/StringUtils.h
===================================================================
--- /code/branches/output/src/libraries/util/StringUtils.h	(revision 8800)
+++ /code/branches/output/src/libraries/util/StringUtils.h	(revision 8801)
@@ -43,4 +43,5 @@
 #include "UtilPrereqs.h"
 #include <string>
+#include <vector>
 
 namespace orxonox
@@ -54,4 +55,6 @@
 
     _UtilExport std::string  removeTrailingWhitespaces(const std::string& str);
+
+    _UtilExport void         vectorize(const std::string& str, char delimiter, std::vector<std::string>* output);
 
     _UtilExport size_t       getNextQuote(const std::string& str, size_t start);
@@ -88,5 +91,5 @@
 
     _UtilExport unsigned int getLevenshteinDistance(const std::string& str1, const std::string& str2);
-    
+
     _UtilExport std::string  getTimestamp(void);
 }
Index: /code/branches/output/src/libraries/util/output/OutputManager.cc
===================================================================
--- /code/branches/output/src/libraries/util/output/OutputManager.cc	(revision 8800)
+++ /code/branches/output/src/libraries/util/output/OutputManager.cc	(revision 8801)
@@ -32,4 +32,5 @@
 #include "ConsoleWriter.h"
 #include "LogWriter.h"
+#include "util/StringUtils.h"
 
 namespace orxonox
@@ -65,9 +66,5 @@
     {
         std::vector<std::string> lines;
-        for (size_t start = 0, end = 0; end != std::string::npos; start = end + 1)
-        {
-            end = message.find_first_of('\n', start);
-            lines.push_back(message.substr(start, end));
-        }
+        vectorize(message, '\n', &lines);
 
         for (size_t i = 0; i < this->listeners_.size(); ++i)
Index: /code/branches/output/src/orxonox/overlays/InGameConsole.cc
===================================================================
--- /code/branches/output/src/orxonox/overlays/InGameConsole.cc	(revision 8800)
+++ /code/branches/output/src/orxonox/overlays/InGameConsole.cc	(revision 8801)
@@ -561,8 +561,8 @@
             case Shell::DebugOutput:     colourTop = ColourValue(0.9f, 0.9f, 0.9f); break;
 
-            case Shell::UserError:       colourTop = ColourValue(0.9f, 0.2f, 0.2f); break;
-            case Shell::UserWarning:     colourTop = ColourValue(0.9f, 0.5f, 0.2f); break;
-            case Shell::UserStatus:      colourTop = ColourValue(0.2f, 0.9f, 0.2f); break;
-            case Shell::UserInfo:        colourTop = ColourValue(0.2f, 0.8f, 0.8f); break;
+            case Shell::UserError:       colourTop = ColourValue(0.9f, 0.0f, 0.0f); break;
+            case Shell::UserWarning:     colourTop = ColourValue(0.9f, 0.5f, 0.0f); break;
+            case Shell::UserStatus:      colourTop = ColourValue(0.0f, 0.9f, 0.0f); break;
+            case Shell::UserInfo:        colourTop = ColourValue(0.0f, 0.8f, 0.8f); break;
 
             case Shell::InternalError:   colourTop = ColourValue(0.5f, 0.0f, 0.0f); break;
@@ -571,7 +571,7 @@
             case Shell::InternalInfo:    colourTop = ColourValue(0.0f, 0.4f, 0.4f); break;
 
-            case Shell::Verbose:         colourTop = ColourValue(0.2f, 0.2f, 0.9f); break;
-            case Shell::VerboseMore:     colourTop = ColourValue(0.1f, 0.1f, 0.6f); break;
-            case Shell::VerboseUltra:    colourTop = ColourValue(0.0f, 0.0f, 0.4f); break;
+            case Shell::Verbose:         colourTop = ColourValue(0.3f, 0.3f, 0.9f); break;
+            case Shell::VerboseMore:     colourTop = ColourValue(0.2f, 0.2f, 0.7f); break;
+            case Shell::VerboseUltra:    colourTop = ColourValue(0.1f, 0.1f, 0.5f); break;
 
             case Shell::Command:         colourTop = ColourValue(0.8f, 0.2f, 0.8f); break;
