Index: code/trunk/src/orxonox/overlays/FadeoutText.cc
===================================================================
--- code/trunk/src/orxonox/overlays/FadeoutText.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/FadeoutText.cc	(revision 3196)
@@ -30,5 +30,5 @@
 
 #include <OgreTextAreaOverlayElement.h>
-
+#include "util/Math.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
Index: code/trunk/src/orxonox/overlays/FadeoutText.h
===================================================================
--- code/trunk/src/orxonox/overlays/FadeoutText.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/FadeoutText.h	(revision 3196)
@@ -32,7 +32,7 @@
 #include "OrxonoxPrereqs.h"
 
+#include "tools/Timer.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
-#include "tools/Timer.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/GUIOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/GUIOverlay.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/GUIOverlay.cc	(revision 3196)
@@ -28,9 +28,12 @@
 
 #include "GUIOverlay.h"
+
 #include <string>
 #include <sstream>
+
 #include "core/input/InputManager.h"
-
-#include "../gui/GUIManager.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "gui/GUIManager.h"
 
 namespace orxonox
@@ -53,5 +56,5 @@
         XMLPortParam(GUIOverlay, "guiname", setGUIName, getGUIName, xmlElement, mode);
         
-        GUIManager::getInstancePtr()->registerOverlay(this->guiName_, this);
+        GUIManager::getInstance().registerOverlay(this->guiName_, this);
     }
 
@@ -66,12 +69,12 @@
             out << (long)this;
             str = out.str();
-            GUIManager::getInstancePtr()->executeCode("showCursor()");
+            GUIManager::getInstance().executeCode("showCursor()");
             InputManager::getInstance().requestEnterState("guiMouseOnly");
-            GUIManager::getInstancePtr()->executeCode("showGUI(\"" + this->guiName_ + "\", " + str + ")");
+            GUIManager::getInstance().executeCode("showGUI(\"" + this->guiName_ + "\", " + str + ")");
         }
         else
         {
-            GUIManager::getInstancePtr()->executeCode("hideGUI(\"" + this->guiName_ + "\")");
-            GUIManager::getInstancePtr()->executeCode("hideCursor()");
+            GUIManager::getInstance().executeCode("hideGUI(\"" + this->guiName_ + "\")");
+            GUIManager::getInstance().executeCode("hideCursor()");
             InputManager::getInstance().requestLeaveState("guiMouseOnly");
         }
Index: code/trunk/src/orxonox/overlays/GUIOverlay.h
===================================================================
--- code/trunk/src/orxonox/overlays/GUIOverlay.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/GUIOverlay.h	(revision 3196)
@@ -30,11 +30,8 @@
 #define _GUIOverlay_H__
 
-
-#include "OrxonoxOverlay.h"
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
-
-#include "core/XMLPort.h"
+#include <string>
+#include "OrxonoxOverlay.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3196)
@@ -215,9 +215,9 @@
             if (angle < 0.0)
                 angle = -angle;
-            angle -= 180.0 * (int)(angle / 180.0);
+            angle -= 180.0f * (int)(angle / 180.0);
 
             // take the reverse if angle is about 90 degrees
             float tempAspect;
-            if (angle > 89.0 && angle < 91.0)
+            if (angle > 89.0f && angle < 91.0f)
             {
                 tempAspect = 1.0 / this->windowAspectRatio_;
@@ -231,5 +231,5 @@
             else
             {
-                tempAspect = 1.0;
+                tempAspect = 1.0f;
                 rotState_ = Inbetween;
             }
@@ -238,5 +238,5 @@
             // magnitude of the width is about the magnitude of the height.
             // Correctly we would have to take the square root of width*height
-            this->sizeCorrection_.x = 2.0 / (tempAspect + 1.0);
+            this->sizeCorrection_.x = 2.0f / (tempAspect + 1.0f);
             this->sizeCorrection_.y = tempAspect * this->sizeCorrection_.x;
         }
Index: code/trunk/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/trunk/src/orxonox/overlays/OrxonoxOverlay.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OrxonoxOverlay.h	(revision 3196)
@@ -37,8 +37,10 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
-#include "tools/WindowEventListener.h"
+#include <string>
+
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
+#include "interfaces/WindowEventListener.h"
 
 namespace orxonox
@@ -134,8 +136,8 @@
 
         //! Gets the current size that was set (uncorrected)
-        const Vector2& getSize() const                   { return this->size_; }
+        const Vector2& getSize() const            { return this->size_; }
 
         //! Gets the actual size of the overlay on the screen (corrected)
-        Vector2 getActualSize() const      { return this->size_ * this->sizeCorrection_; }
+        Vector2 getActualSize() const             { return this->size_ * this->sizeCorrection_; }
 
         //! Gets the current size correction (default: 1.0, 1.0)
@@ -198,5 +200,5 @@
         Vector2 pickPoint_;                        //!< Point on the overlay to pick when translating
         Degree angle_;                             //!< Rotation angle of the overlay
-        RotationState rotState_;             //!< horizontal, vertical or inbetween
+        RotationState rotState_;                   //!< horizontal, vertical or inbetween
 
     private:
Index: code/trunk/src/orxonox/overlays/OverlayGroup.cc
===================================================================
--- code/trunk/src/orxonox/overlays/OverlayGroup.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OverlayGroup.cc	(revision 3196)
@@ -34,8 +34,6 @@
 #include "OverlayGroup.h"
 
-#include "util/Debug.h"
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
-#include "core/Iterator.h"
 #include "core/XMLPort.h"
 #include "OrxonoxOverlay.h"
Index: code/trunk/src/orxonox/overlays/OverlayGroup.h
===================================================================
--- code/trunk/src/orxonox/overlays/OverlayGroup.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OverlayGroup.h	(revision 3196)
@@ -38,7 +38,7 @@
 
 #include <set>
-#include <OgrePrerequisites.h>
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
-#include "util/Math.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/OverlayText.cc
===================================================================
--- code/trunk/src/orxonox/overlays/OverlayText.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OverlayText.cc	(revision 3196)
@@ -31,4 +31,6 @@
 #include <OgreOverlayManager.h>
 #include <OgrePanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <boost/static_assert.hpp>
 
 #include "util/String.h"
@@ -36,7 +38,12 @@
 #include "core/XMLPort.h"
 
+
 namespace orxonox
 {
     CreateFactory(OverlayText);
+
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Left);
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Center);
+    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Right);
 
     OverlayText::OverlayText(BaseObject* creator)
@@ -76,18 +83,12 @@
     }
 
-    void OverlayText::setFont(const std::string& font)
-    {
-        if (font != "")
-            this->text_->setFontName(font);
-    }
-
     void OverlayText::setAlignmentString(const std::string& alignment)
     {
         if (alignment == "right")
-            this->setAlignment(Ogre::TextAreaOverlayElement::Right);
+            this->setAlignment(OverlayText::Right);
         else if (alignment == "center")
-            this->setAlignment(Ogre::TextAreaOverlayElement::Center);
+            this->setAlignment(OverlayText::Center);
         else // "left" and default
-            this->setAlignment(Ogre::TextAreaOverlayElement::Left);
+            this->setAlignment(OverlayText::Left);
     }
 
@@ -120,3 +121,50 @@
         positionChanged();
     }
+
+    void OverlayText::setCaption(const std::string& caption)
+    {
+        this->text_->setCaption(caption);
+        this->changedCaption();
+    }
+    std::string OverlayText::getCaption() const
+    {
+        return this->text_->getCaption();
+    }
+
+    void OverlayText::setFont(const std::string& font)
+    {
+        if (font != "")
+            this->text_->setFontName(font);
+    }
+    const std::string& OverlayText::getFont() const
+    {
+        return this->text_->getFontName();
+    }
+
+    void OverlayText::setSpaceWidth(float width)
+    {
+        this->text_->setSpaceWidth(width);
+    }
+    float OverlayText::getSpaceWidth() const
+    {
+        return this->text_->getSpaceWidth();
+    }
+
+    void OverlayText::setColour(const ColourValue& colour)
+    {
+        this->text_->setColour(colour); this->changedColour();
+    }
+    const ColourValue& OverlayText::getColour() const
+    {
+        return this->text_->getColour();
+    }
+
+    void OverlayText::setAlignment(OverlayText::Alignment alignment)
+    {
+        this->text_->setAlignment(static_cast<Ogre::TextAreaOverlayElement::Alignment>(alignment));
+    }
+    OverlayText::Alignment OverlayText::getAlignment() const
+    {
+        return static_cast<OverlayText::Alignment>(this->text_->getAlignment());
+    }
 }
Index: code/trunk/src/orxonox/overlays/OverlayText.h
===================================================================
--- code/trunk/src/orxonox/overlays/OverlayText.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/OverlayText.h	(revision 3196)
@@ -33,6 +33,6 @@
 
 #include <string>
-#include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
+#include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "OrxonoxOverlay.h"
 
@@ -42,4 +42,11 @@
     {
     public:
+        enum Alignment
+        {
+            Left,
+            Right,
+            Center
+        };
+
         OverlayText(BaseObject* creator);
         virtual ~OverlayText();
@@ -47,18 +54,18 @@
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
 
-        inline void setCaption(const std::string& caption) { this->text_->setCaption(caption); this->changedCaption(); }
-        inline std::string getCaption() const              { return this->text_->getCaption(); }
+        void setCaption(const std::string& caption);
+        std::string getCaption() const;
 
         void setFont(const std::string& font);
-        inline const std::string& getFont() const { return this->text_->getFontName(); }
+        const std::string& getFont() const;
 
-        inline void setSpaceWidth(float width) { this->text_->setSpaceWidth(width); }
-        inline float getSpaceWidth() const     { return this->text_->getSpaceWidth(); }
+        void setSpaceWidth(float width);
+        float getSpaceWidth() const;
 
-        inline void setColour(const ColourValue& colour) { this->text_->setColour(colour); this->changedColour(); }
-        inline const ColourValue& getColour() const      { return this->text_->getColour(); }
+        void setColour(const ColourValue& colour);
+        const ColourValue& getColour() const;
 
-        inline void setAlignment(Ogre::TextAreaOverlayElement::Alignment alignment) { this->text_->setAlignment(alignment); }
-        inline Ogre::TextAreaOverlayElement::Alignment getAlignment() const         { return this->text_->getAlignment(); }
+        void setAlignment(OverlayText::Alignment alignment);
+        OverlayText::Alignment getAlignment() const;
 
         void setAlignmentString(const std::string& alignment);
Index: code/trunk/src/orxonox/overlays/console/InGameConsole.cc
===================================================================
--- code/trunk/src/orxonox/overlays/console/InGameConsole.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/console/InGameConsole.cc	(revision 3196)
@@ -35,4 +35,6 @@
 #include <OgreOverlayManager.h>
 #include <OgreOverlayContainer.h>
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
 #include <OgreFontManager.h>
 #include <OgreFont.h>
@@ -40,5 +42,5 @@
 #include "util/Math.h"
 #include "util/Convert.h"
-#include "util/Debug.h"
+#include "util/UTFStringConversions.h"
 #include "core/Clock.h"
 #include "core/CoreIncludes.h"
@@ -466,5 +468,5 @@
                 {
                     ++linesUsed;
-                    this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output.substr(0, this->maxCharsPerLine_)));
+                    this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output.substr(0, this->maxCharsPerLine_)));
                     output.erase(0, this->maxCharsPerLine_);
                     output.insert(0, 1, ' ');
@@ -473,5 +475,5 @@
                     this->colourLine(level, index);
                 }
-                this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output));
+                this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output));
                 this->displayedText_ = output;
                 this->numLinesShifted_ = linesUsed;
@@ -491,5 +493,5 @@
                   this->inputWindowStart_ = 0;
                 this->displayedText_ = output;
-                this->consoleOverlayTextAreas_[index]->setCaption(convert2UTF(output));
+                this->consoleOverlayTextAreas_[index]->setCaption(multi_cast<Ogre::UTFString>(output));
             }
         }
@@ -606,21 +608,3 @@
         InGameConsole::getInstance().deactivate();
     }
-
-    /**
-        @brief Converts a string into an Ogre::UTFString.
-        @param s The string to convert
-        @return The converted string
-    */
-    /*static*/ Ogre::UTFString InGameConsole::convert2UTF(const std::string& text)
-    {
-        Ogre::UTFString utf;
-        Ogre::UTFString::code_point cp;
-        for (unsigned int i = 0; i < text.size(); ++i)
-        {
-          cp = text[i];
-          cp &= 0xFF;
-          utf.append(1, cp);
-        }
-        return utf;
-    }
 }
Index: code/trunk/src/orxonox/overlays/console/InGameConsole.h
===================================================================
--- code/trunk/src/orxonox/overlays/console/InGameConsole.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/console/InGameConsole.h	(revision 3196)
@@ -32,16 +32,13 @@
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
+#include <string>
+#include "util/OgreForwardRefs.h"
 #include "core/Shell.h"
-#include "core/OrxonoxClass.h"
-#include "tools/WindowEventListener.h"
-
+#include "interfaces/WindowEventListener.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport InGameConsole : virtual public OrxonoxClass, public ShellListener, public WindowEventListener
+    class _OrxonoxExport InGameConsole : public ShellListener, public WindowEventListener
     {
     public: // functions
@@ -60,6 +57,4 @@
         static void openConsole();
         static void closeConsole();
-
-        static Ogre::UTFString convert2UTF(const std::string& text);
 
     private: // functions
Index: code/trunk/src/orxonox/overlays/debug/DebugFPSText.cc
===================================================================
--- code/trunk/src/orxonox/overlays/debug/DebugFPSText.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/debug/DebugFPSText.cc	(revision 3196)
@@ -28,5 +28,5 @@
 
 #include "DebugFPSText.h"
-#include <OgreTextAreaOverlayElement.h>
+
 #include "util/Convert.h"
 #include "core/CoreIncludes.h"
@@ -51,5 +51,5 @@
 
         float fps = Game::getInstance().getAvgFPS();
-        this->setCaption(convertToString(fps));
+        this->setCaption(multi_cast<std::string>(fps));
     }
 }
Index: code/trunk/src/orxonox/overlays/debug/DebugFPSText.h
===================================================================
--- code/trunk/src/orxonox/overlays/debug/DebugFPSText.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/debug/DebugFPSText.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -41,5 +41,5 @@
     public:
         DebugFPSText(BaseObject* creator);
-        ~DebugFPSText();
+        virtual ~DebugFPSText();
 
         virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/debug/DebugRTRText.cc
===================================================================
--- code/trunk/src/orxonox/overlays/debug/DebugRTRText.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/debug/DebugRTRText.cc	(revision 3196)
@@ -28,7 +28,7 @@
 
 #include "DebugRTRText.h"
-#include <OgreTextAreaOverlayElement.h>
+
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
-#include "util/Convert.h"
 #include "core/Game.h"
 
@@ -51,5 +51,5 @@
 
         float rtr = Game::getInstance().getAvgTickTime();
-        this->setCaption(convertToString(rtr));
+        this->setCaption(multi_cast<std::string>(rtr));
     }
 }
Index: code/trunk/src/orxonox/overlays/debug/DebugRTRText.h
===================================================================
--- code/trunk/src/orxonox/overlays/debug/DebugRTRText.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/debug/DebugRTRText.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -41,5 +41,5 @@
     public:
         DebugRTRText(BaseObject* creator);
-        ~DebugRTRText();
+        virtual ~DebugRTRText();
 
         virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/hud/AnnounceMessage.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/AnnounceMessage.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/AnnounceMessage.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/hud/ChatOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/ChatOverlay.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/ChatOverlay.cc	(revision 3196)
@@ -29,18 +29,16 @@
 #include "ChatOverlay.h"
 
+#include <string>
 #include <OgreTextAreaOverlayElement.h>
 
+#include "util/Convert.h"
+#include "util/UTFStringConversions.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
 #include "core/Executor.h"
 
-#include "network/ClientInformation.h"
-
+#include "tools/Timer.h"
+#include "objects/infos/PlayerInfo.h"
 #include "PlayerManager.h"
-#include "objects/infos/PlayerInfo.h"
-#include "overlays/console/InGameConsole.h"
-#include "tools/Timer.h"
-
-#include "util/Convert.h"
 
 namespace orxonox
@@ -86,5 +84,5 @@
         }
 
-        this->messages_.push_back(InGameConsole::convert2UTF(text));
+        this->messages_.push_back(multi_cast<Ogre::UTFString>(text));
         COUT(0) << "Chat: " << text << std::endl;
 
Index: code/trunk/src/orxonox/overlays/hud/ChatOverlay.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/ChatOverlay.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/ChatOverlay.h	(revision 3196)
@@ -32,5 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgreTextAreaOverlayElement.h>
+#include <list>
+#include <OgreUTFString.h>
 
 #include "network/ChatListener.h"
@@ -43,5 +44,5 @@
         public:
             ChatOverlay(BaseObject* creator);
-            ~ChatOverlay();
+            virtual ~ChatOverlay();
 
             void setConfigValues();
Index: code/trunk/src/orxonox/overlays/hud/DeathMessage.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/DeathMessage.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/DeathMessage.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc	(revision 3196)
@@ -29,8 +29,6 @@
 #include "GametypeStatus.h"
 
-#include <OgreTextAreaOverlayElement.h>
-
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
-#include "util/Convert.h"
 #include "objects/infos/GametypeInfo.h"
 #include "objects/infos/PlayerInfo.h"
Index: code/trunk/src/orxonox/overlays/hud/GametypeStatus.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/GametypeStatus.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/GametypeStatus.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -41,5 +41,5 @@
         public:
             GametypeStatus(BaseObject* creator);
-            ~GametypeStatus();
+            virtual ~GametypeStatus();
 
             virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/hud/HUDBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDBar.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDBar.cc	(revision 3196)
@@ -34,4 +34,5 @@
 #include <OgreMaterialManager.h>
 #include <OgreTechnique.h>
+#include <OgrePass.h>
 #include <OgrePanelOverlayElement.h>
 
@@ -77,5 +78,5 @@
         this->textureUnitState_->setTextureName("bar2.tga");
         // use the default colour
-        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2, 0.7, 0.2));
+        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2f, 0.7f, 0.2f));
 
         this->bar_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
Index: code/trunk/src/orxonox/overlays/hud/HUDBar.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDBar.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDBar.h	(revision 3196)
@@ -35,6 +35,9 @@
 
 #include <map>
-#include <OgrePrerequisites.h>
+#include <vector>
+
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
+#include "core/BaseObject.h"
 #include "overlays/OrxonoxOverlay.h"
 
@@ -45,5 +48,5 @@
     public:
         BarColour(BaseObject* creator);
-        ~BarColour() { }
+        virtual ~BarColour() { }
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
Index: code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	(revision 3196)
@@ -29,13 +29,9 @@
 #include "HUDHealthBar.h"
 
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h>
-
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 #include "objects/worldentities/pawns/Pawn.h"
-#include "objects/items/Engine.h"
 #include "overlays/OverlayGroup.h"
-#include "util/Convert.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/hud/HUDHealthBar.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDHealthBar.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDHealthBar.h	(revision 3196)
@@ -32,7 +32,8 @@
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
 #include "HUDBar.h"
-#include "objects/Tickable.h"
-#include "overlays/OverlayText.h"
 
 namespace orxonox
@@ -42,5 +43,5 @@
         public:
             HUDHealthBar(BaseObject* creator);
-            ~HUDHealthBar();
+            virtual ~HUDHealthBar();
 
             virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
@@ -64,7 +65,7 @@
                 { return this->bUseBarColour_; }
 
-            inline void setTextAlignment(Ogre::TextAreaOverlayElement::Alignment alignment)
+            inline void setTextAlignment(OverlayText::Alignment alignment)
                 { this->textoverlay_->setAlignment(alignment); }
-            inline Ogre::TextAreaOverlayElement::Alignment getTextAlignment() const
+            inline OverlayText::Alignment getTextAlignment() const
                 { return this->textoverlay_->getAlignment(); }
 
Index: code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 3196)
@@ -29,4 +29,5 @@
 #include "HUDNavigation.h"
 
+#include <string>
 #include <OgreOverlayManager.h>
 #include <OgreTextAreaOverlayElement.h>
@@ -36,5 +37,4 @@
 #include "util/String.h"
 #include "util/Convert.h"
-#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
Index: code/trunk/src/orxonox/overlays/hud/HUDNavigation.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDNavigation.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDNavigation.h	(revision 3196)
@@ -32,7 +32,7 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -42,5 +42,5 @@
     public:
         HUDNavigation(BaseObject* creator);
-        ~HUDNavigation();
+        virtual ~HUDNavigation();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
Index: code/trunk/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDRadar.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDRadar.cc	(revision 3196)
@@ -35,11 +35,9 @@
 #include "util/Math.h"
 #include "util/String.h"
-#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "objects/Radar.h"
+#include "tools/TextureGenerator.h"
 #include "objects/worldentities/WorldEntity.h"
 #include "objects/worldentities/pawns/Pawn.h"
-#include "tools/TextureGenerator.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/hud/HUDRadar.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDRadar.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDRadar.h	(revision 3196)
@@ -33,10 +33,11 @@
 #include "OrxonoxPrereqs.h"
 
+#include <map>
 #include <vector>
-#include <map>
-#include <OgrePrerequisites.h>
+
+#include "util/OgreForwardRefs.h"
+#include "interfaces/RadarListener.h"
+#include "interfaces/RadarViewable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/RadarListener.h"
-#include "objects/RadarViewable.h"
 
 namespace orxonox
@@ -46,5 +47,5 @@
     public:
         HUDRadar(BaseObject* creator);
-        ~HUDRadar();
+        virtual ~HUDRadar();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
Index: code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 3196)
@@ -29,4 +29,5 @@
 
 #include "HUDSpeedBar.h"
+
 #include "core/CoreIncludes.h"
 #include "objects/worldentities/pawns/SpaceShip.h"
Index: code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.h	(revision 3196)
@@ -33,6 +33,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "HUDBar.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -42,5 +42,5 @@
     public:
         HUDSpeedBar(BaseObject* creator);
-        ~HUDSpeedBar();
+        virtual ~HUDSpeedBar();
 
         virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/hud/HUDTimer.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDTimer.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDTimer.cc	(revision 3196)
@@ -29,6 +29,6 @@
 #include "HUDTimer.h"
 
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
-#include "util/Convert.h"
 #include "objects/worldentities/ControllableEntity.h"
 #include "objects/gametypes/Gametype.h"
@@ -36,37 +36,37 @@
 namespace orxonox
 {
-  CreateFactory(HUDTimer);
+    CreateFactory(HUDTimer);
 
-  HUDTimer::HUDTimer(BaseObject* creator) : OverlayText(creator)
-  {
-    RegisterObject(HUDTimer);
+    HUDTimer::HUDTimer(BaseObject* creator) : OverlayText(creator)
+    {
+        RegisterObject(HUDTimer);
 
-    this->owner_ = 0;
-  }
+        this->owner_ = 0;
+    }
 
-  HUDTimer::~HUDTimer()
-  {
-  }
+    HUDTimer::~HUDTimer()
+    {
+    }
 
-  void HUDTimer::tick(float dt)
-  {
-    SUPER(HUDTimer, tick, dt);
+    void HUDTimer::tick(float dt)
+    {
+        SUPER(HUDTimer, tick, dt);
 
-    Gametype* gametype = this->getGametype();
-    
-    if(gametype)
+        Gametype* gametype = this->getGametype();
+
+        if (gametype)
+        {
+            if (gametype->getTimerIsActive())
+            {
+                this->setCaption(convertToString((int)gametype->getTime() + 1));
+            }
+        }
+    }
+
+    void HUDTimer::changedOwner()
     {
-      if (gametype->getTimerIsActive())
-      {
-        this->setCaption(convertToString((int)gametype->getTime() + 1));
-      }
+        SUPER(HUDTimer, changedOwner);
+
+        this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
     }
-  }
-
-  void HUDTimer::changedOwner()
-  {
-    SUPER(HUDTimer, changedOwner);
-
-    this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
-  }
 }
Index: code/trunk/src/orxonox/overlays/hud/HUDTimer.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDTimer.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/HUDTimer.h	(revision 3196)
@@ -32,22 +32,22 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
 {
-  class _OrxonoxExport HUDTimer : public OverlayText, public Tickable
-  {
+    class _OrxonoxExport HUDTimer : public OverlayText, public Tickable
+    {
     public:
-      HUDTimer(BaseObject* creator);
-      ~HUDTimer();
+        HUDTimer(BaseObject* creator);
+        virtual ~HUDTimer();
 
-      virtual void tick(float dt);
+        virtual void tick(float dt);
 
-      virtual void changedOwner();
+        virtual void changedOwner();
 
-      private:
+    private:
         ControllableEntity* owner_;
-  };
+    };
 }
 #endif /* _HUDTimer_H__ */
Index: code/trunk/src/orxonox/overlays/hud/KillMessage.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/KillMessage.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/KillMessage.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/GametypeMessageListener.h"
 #include "overlays/FadeoutText.h"
-#include "objects/GametypeMessageListener.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/hud/PongScore.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/PongScore.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/PongScore.cc	(revision 3196)
@@ -29,9 +29,7 @@
 #include "PongScore.h"
 
-#include <OgreTextAreaOverlayElement.h>
-
+#include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "util/Convert.h"
 #include "objects/gametypes/Pong.h"
 #include "objects/infos/PlayerInfo.h"
Index: code/trunk/src/orxonox/overlays/hud/PongScore.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/PongScore.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/PongScore.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -41,5 +41,5 @@
         public:
             PongScore(BaseObject* creator);
-            ~PongScore();
+            virtual ~PongScore();
 
             virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	(revision 3196)
@@ -28,6 +28,4 @@
 
 #include "TeamBaseMatchScore.h"
-
-#include <OgreTextAreaOverlayElement.h>
 
 #include "core/CoreIncludes.h"
Index: code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.h	(revision 3196)
@@ -32,6 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
-#include "objects/Tickable.h"
 
 namespace orxonox
@@ -41,5 +41,5 @@
         public:
             TeamBaseMatchScore(BaseObject* creator);
-            ~TeamBaseMatchScore();
+            virtual ~TeamBaseMatchScore();
 
             virtual void tick(float dt);
Index: code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3196)
@@ -47,5 +47,5 @@
         this->text_ = new OverlayText(this);
         this->text_->setFont("Monofur");
-        this->text_->setTextSize(0.04);
+        this->text_->setTextSize(0.04f);
         this->text_->setAlignmentString("center");
         this->text_->setColour(ColourValue::White);
Index: code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h
===================================================================
--- code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.h	(revision 3196)
@@ -32,6 +32,7 @@
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+#include "tools/Timer.h"
 #include "HUDHealthBar.h"
-#include "tools/Timer.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/map/Map.cc
===================================================================
--- code/trunk/src/orxonox/overlays/map/Map.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/map/Map.cc	(revision 3196)
@@ -24,36 +24,37 @@
  *
  */
+
 #include "Map.h"
 
 #include <string>
-#include "util/String.h"
+
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreCamera.h>
+#include <OgreEntity.h>
+#include <OgreHardwarePixelBuffer.h>
+#include <OgreMaterialManager.h>
+#include <OgreMovablePlane.h>
+#include <OgreOverlay.h>
+#include <OgreOverlayContainer.h>
+#include <OgreOverlayManager.h>
+#include <OgrePass.h>
+#include <OgreRenderTexture.h>
+#include <OgreResourceGroupManager.h>
+#include <OgreRoot.h>
 #include <OgreSceneManager.h>
 #include <OgreSceneNode.h>
-#include <OgreEntity.h>
-#include <OgreNode.h>
-
-
-#include <OgreRenderWindow.h>
-#include <OgreRenderTexture.h>
+#include <OgreTechnique.h>
 #include <OgreTexture.h>
+#include <OgreTextureManager.h>
 #include <OgreViewport.h>
 
-#include <OgreMaterialManager.h>
-#include <OgreRoot.h>
-#include <OgreHardwarePixelBuffer.h>
+#include "core/ConsoleCommand.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "interfaces/RadarViewable.h"
+#include "objects/Scene.h"
+#include "objects/controllers/HumanController.h"
+#include "objects/worldentities/CameraPosition.h"
 #include "objects/worldentities/ControllableEntity.h"
-#include "objects/worldentities/CameraPosition.h"
-
-#include <OgreOverlay.h>
-#include <OgreMovablePlane.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/ConsoleCommand.h"
-#include "objects/Scene.h"
-#include "objects/RadarViewable.h"
-#include "objects/controllers/HumanController.h"
 
  namespace orxonox
@@ -264,5 +265,5 @@
     }
 
-    Ogre::MaterialPtr Map::createRenderCamera(Ogre::Camera * cam, std::string matName)
+    Ogre::MaterialPtr Map::createRenderCamera(Ogre::Camera * cam, const std::string& matName)
     {
         Ogre::TexturePtr rttTex = Ogre::TextureManager::getSingleton().createManual(matName+"_tex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, 512, 512, 0, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET);
@@ -400,4 +401,10 @@
     }
 
+    // HACK!
+    void Map::hackDestroyMap()
+    {
+        Map::OverlayMaterial_.setNull();
+    }
+
     void Map::tick(float dt)
     {
Index: code/trunk/src/orxonox/overlays/map/Map.h
===================================================================
--- code/trunk/src/orxonox/overlays/map/Map.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/map/Map.h	(revision 3196)
@@ -25,26 +25,14 @@
  */
 
-#ifndef _MAP_H__
-#define _MAP_H__
+#ifndef _Map_H__
+#define _Map_H__
 
-#include <string>
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreSceneManager.h>
-#include <OgreSceneNode.h>
-#include <OgreEntity.h>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-#include <OgreMovablePlane.h>
 
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
+#include <OgreMaterial.h>
 
+#include "util/UtilPrereqs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
-
 
 namespace orxonox
@@ -55,5 +43,5 @@
     public: // functions
         Map(BaseObject* creator);
-        ~Map();
+        virtual ~Map();
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
@@ -61,7 +49,9 @@
         virtual void changedOwner();
 
-        static Ogre::MaterialPtr createRenderCamera(Ogre::Camera * cam, std::string matName);
+        static Ogre::MaterialPtr createRenderCamera(Ogre::Camera * cam, const std::string& matName);
 
         static void openMap();
+        // HACK!
+        static void hackDestroyMap();
 
 //Not yet implemented
@@ -126,3 +116,3 @@
 }
 
-#endif /* _MAP_H__ */
+#endif /* _Map_H__ */
Index: code/trunk/src/orxonox/overlays/notifications/Notification.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/Notification.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/Notification.cc	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file Notification.cc
+    @file
     @brief Implementation of the Notification class.
 */
@@ -35,6 +35,4 @@
 
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
 #include "NotificationManager.h"
 
@@ -48,4 +46,5 @@
     Notification::Notification(BaseObject* creator) : BaseObject(creator)
     {
+        RegisterObject(Notification);
         this->initialize();
     }
@@ -76,6 +75,4 @@
     void Notification::initialize(void)
     {
-        RegisterObject(Notification);
-        
         this->message_ = "";
         this->sender_ = NotificationManager::NONE;
Index: code/trunk/src/orxonox/overlays/notifications/Notification.h
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/Notification.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/Notification.h	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file Notification.h
+    @file
     @brief Definition of the Notification class.
 */
@@ -38,5 +38,4 @@
 
 #include <string>
-
 #include "core/BaseObject.h"
 
Index: code/trunk/src/orxonox/overlays/notifications/NotificationManager.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationManager.cc
+    @file
     @brief Implementation of the NotificationManager class.
 */
@@ -34,8 +34,7 @@
 #include "NotificationManager.h"
 
+#include <set>
+
 #include "core/CoreIncludes.h"
-
-#include <set>
-
 #include "Notification.h"
 #include "NotificationQueue.h"
Index: code/trunk/src/orxonox/overlays/notifications/NotificationManager.h
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationManager.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationManager.h	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationManager.h
+    @file
     @brief Definition of the NotificationManager class.
 */
@@ -37,11 +37,8 @@
 #include "OrxonoxPrereqs.h"
 
-#include "core/OrxonoxClass.h"
-
+#include <ctime>
 #include <map>
 #include <string>
-#include <ctime>
-
-#include "NotificationOverlay.h"
+#include "core/OrxonoxClass.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationOverlay.cc
+    @file
     @brief Implementation of the NotificationOverlay class.
 */
@@ -34,11 +34,6 @@
 #include "NotificationOverlay.h"
 
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
-
+#include "util/Exception.h"
 #include "core/CoreIncludes.h"
-#include "util/Exception.h"
-
 #include "Notification.h"
 #include "NotificationQueue.h"
@@ -53,4 +48,5 @@
     NotificationOverlay::NotificationOverlay(BaseObject* creator) : OverlayText(creator)
     {
+        RegisterObject(NotificationOverlay);
         this->initialize();
     }
@@ -87,6 +83,4 @@
     void NotificationOverlay::initialize(void)
     {
-        RegisterObject(NotificationOverlay);
-        
         this->queue_ = NULL;
     }
@@ -133,5 +127,5 @@
         Clips the input message so that it meets the requirements for the maximal length of Notifications given by the NotificationQueue.
     */
-    const std::string NotificationOverlay::clipMessage(const std::string & message)
+    std::string NotificationOverlay::clipMessage(const std::string & message)
     {
         if(message.length() <= (unsigned int)this->queue_->getNotificationLength()) //!< If the message is not too long.
Index: code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.h
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.h	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationOverlay.h
+    @file
     @brief Definition of the NotificationOverlay class.
 */
@@ -38,10 +38,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include <string>
 #include "orxonox/overlays/OverlayText.h"
-
-#include <string>
-#include <set>
-#include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
 
 namespace orxonox
@@ -72,5 +68,5 @@
         
         protected:
-            const std::string clipMessage(const std::string & message); //!< Clips the input message if too long.
+            std::string clipMessage(const std::string & message); //!< Clips the input message if too long.
 
         private:
Index: code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationQueue.cc
+    @file
     @brief Implementation of the NotificationQueue class.
 */
@@ -34,15 +34,10 @@
 #include "NotificationQueue.h"
 
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <list>
-#include <iostream>
 #include <sstream>
 
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-
-#include "Notification.h"
 #include "NotificationOverlay.h"
+#include "NotificationManager.h"
 
 namespace orxonox
@@ -53,5 +48,5 @@
     const std::string NotificationQueue::DEFAULT_FONT = "VeraMono";
     const Vector2 NotificationQueue::DEFAULT_POSITION = Vector2(0.0,0.0);
-    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025;
+    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025f;
 
     /**
@@ -61,4 +56,5 @@
     NotificationQueue::NotificationQueue(BaseObject* creator) : OverlayGroup(creator)
     {
+        RegisterObject(NotificationQueue);
         this->initialize();
     }
@@ -81,6 +77,4 @@
     void NotificationQueue::initialize(void)
     {
-        RegisterObject(NotificationQueue);
-
         this->size_ = 0;
         this->tickTime_ = 0.0;
Index: code/trunk/src/orxonox/overlays/notifications/NotificationQueue.h
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 3196)
@@ -28,5 +28,5 @@
 
 /**
-    @file NotificationQueue.h
+    @file
     @brief Definition of the NotificationQueue class.
 */
@@ -37,16 +37,12 @@
 #include "OrxonoxPrereqs.h"
 
+#include <ctime>
+#include <map>
+#include <set>
 #include <string>
-#include <set>
-#include <OgreOverlayManager.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
-#include <map>
-#include <ctime>
-
-#include "orxonox/overlays/OverlayGroup.h"
-#include "orxonox/objects/Tickable.h"
-
-#include "NotificationManager.h"
+
+#include "util/Math.h"
+#include "interfaces/Tickable.h"
+#include "overlays/OverlayGroup.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/stats/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/overlays/stats/CMakeLists.txt	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/CMakeLists.txt	(revision 3196)
@@ -3,4 +3,3 @@
   Scoreboard.cc
   Stats.cc
-  StatsTest.cc
 )
Index: code/trunk/src/orxonox/overlays/stats/CreateLines.cc
===================================================================
--- code/trunk/src/orxonox/overlays/stats/CreateLines.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/CreateLines.cc	(revision 3196)
@@ -26,15 +26,4 @@
 
 #include "CreateLines.h"
-
-#include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-
-#include "util/Convert.h"
-#include "util/Debug.h"
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
 
 #include "overlays/OverlayText.h"
Index: code/trunk/src/orxonox/overlays/stats/CreateLines.h
===================================================================
--- code/trunk/src/orxonox/overlays/stats/CreateLines.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/CreateLines.h	(revision 3196)
@@ -28,13 +28,5 @@
 #define _CreateLines_H__
 
-
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
-
-#include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/stats/Scoreboard.cc
===================================================================
--- code/trunk/src/orxonox/overlays/stats/Scoreboard.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/Scoreboard.cc	(revision 3196)
@@ -27,14 +27,6 @@
 #include "Scoreboard.h"
 
-#include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
-#include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
-
 #include "util/Convert.h"
-#include "util/Debug.h"
 #include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
 #include "objects/gametypes/Gametype.h"
 #include "objects/infos/PlayerInfo.h"
@@ -101,7 +93,7 @@
         for (std::map<PlayerInfo*, Player>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
         {
-            this->lines_[index]->setPlayerName(omni_cast<std::string>(it->first->getName()));
-            this->lines_[index]->setScore(omni_cast<std::string>(it->second.frags_));
-            this->lines_[index]->setDeaths(omni_cast<std::string>(it->second.killed_));
+            this->lines_[index]->setPlayerName(multi_cast<std::string>(it->first->getName()));
+            this->lines_[index]->setScore(multi_cast<std::string>(it->second.frags_));
+            this->lines_[index]->setDeaths(multi_cast<std::string>(it->second.killed_));
             index++;
         }
Index: code/trunk/src/orxonox/overlays/stats/Scoreboard.h
===================================================================
--- code/trunk/src/orxonox/overlays/stats/Scoreboard.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/Scoreboard.h	(revision 3196)
@@ -30,11 +30,9 @@
 
 #include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
 
+#include <string>
+#include <vector>
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
 
 namespace orxonox
@@ -42,5 +40,4 @@
     class _OrxonoxExport Scoreboard : public OrxonoxOverlay, public Tickable
     {
-
     public: // functions
         Scoreboard(BaseObject* creator);
Index: code/trunk/src/orxonox/overlays/stats/Stats.cc
===================================================================
--- code/trunk/src/orxonox/overlays/stats/Stats.cc	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/Stats.cc	(revision 3196)
@@ -30,11 +30,8 @@
 
 #include <string>
-#include <OgreOverlay.h>
-#include <OgreOverlayElement.h>
 #include <OgreOverlayManager.h>
-#include <OgreOverlayContainer.h>
+#include <OgreBorderPanelOverlayElement.h>
 
-#include "util/Convert.h"
-#include "util/Debug.h"
+#include "util/String.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
Index: code/trunk/src/orxonox/overlays/stats/Stats.h
===================================================================
--- code/trunk/src/orxonox/overlays/stats/Stats.h	(revision 3110)
+++ code/trunk/src/orxonox/overlays/stats/Stats.h	(revision 3196)
@@ -30,13 +30,9 @@
 #define _Stats_H__
 
+#include "OrxonoxPrereqs.h"
 
-#include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-#include <OgreBorderPanelOverlayElement.h>
-#include <OgreTextAreaOverlayElement.h>
-
+#include "util/OgreForwardRefs.h"
+#include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
 
 namespace orxonox
Index: code/trunk/src/orxonox/overlays/stats/StatsTest.cc
===================================================================
--- code/trunk/src/orxonox/overlays/stats/StatsTest.cc	(revision 3110)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "StatsTest.h"
-
-#include <OgreTextAreaOverlayElement.h>
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    CreateFactory(StatsTest);
-
-    StatsTest::StatsTest(BaseObject* creator)
-        : OrxonoxOverlay(creator)
-    {
-        RegisterObject(StatsTest);
-    }
-
-    StatsTest::~StatsTest()
-    {
-    }
-
-    void StatsTest::tick(float dt)
-    {
-    }
-}
Index: code/trunk/src/orxonox/overlays/stats/StatsTest.h
===================================================================
--- code/trunk/src/orxonox/overlays/stats/StatsTest.h	(revision 3110)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _StatsTest_H__
-#define _StatsTest_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport StatsTest : public OrxonoxOverlay, public Tickable
-    {
-    public:
-        StatsTest(BaseObject* creator);
-        ~StatsTest();
-
-        virtual void tick(float dt);
-    };
-}
-#endif /* _StatsTest_H__ */
