Index: code/branches/presentation/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/presentation/src/orxonox/OrxonoxPrereqs.h	(revision 2491)
+++ code/branches/presentation/src/orxonox/OrxonoxPrereqs.h	(revision 2492)
@@ -201,4 +201,6 @@
     class OverlayText;
     class GametypeStatus;
+    class CreateLines;
+    class Scoreboard;
 
     //gui
Index: code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc	(revision 2491)
+++ code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc	(revision 2492)
@@ -35,4 +35,6 @@
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
+#include "core/Loader.h"
+#include "core/XMLFile.h"
 #include "objects/infos/PlayerInfo.h"
 #include "objects/infos/Bot.h"
@@ -40,4 +42,5 @@
 #include "objects/worldentities/SpawnPoint.h"
 #include "objects/worldentities/Camera.h"
+#include "Settings.h"
 
 #include "network/Host.h"
@@ -64,4 +67,13 @@
 
         this->addBots(this->numberOfBots_);
+
+        this->statsOverlay_ = 0;
+
+        setConfigValues();
+
+        // load the corresponding score board
+        //this->statsOverlay_ = new XMLFile(Settings::getDataPath() + "overlay/" + this->statsOverlayName_);
+        //Loader::open(statsOverlay_);
+        //this->setGametype(this);
     }
 
@@ -72,4 +84,5 @@
         SetConfigValue(bForceSpawn_, false);
         SetConfigValue(numberOfBots_, 0);
+        SetConfigValue(statsOverlayName_, "stats.oxo");
     }
 
Index: code/branches/presentation/src/orxonox/objects/gametypes/Gametype.h
===================================================================
--- code/branches/presentation/src/orxonox/objects/gametypes/Gametype.h	(revision 2491)
+++ code/branches/presentation/src/orxonox/objects/gametypes/Gametype.h	(revision 2492)
@@ -56,4 +56,5 @@
     {
         friend class PlayerInfo;
+        friend class ClassIdentifier<Gametype>;
 
         public:
@@ -101,4 +102,13 @@
             void killBots(unsigned int amount = 0);
 
+            inline unsigned int getNumberOfPlayers() const
+                { return this->players_.size(); }
+
+            inline std::string getPlayersName() const
+                { return "StatsBot77"; }
+
+            inline unsigned int getPlayersFrags() const
+                { return 123; }
+
         private:
             virtual SpawnPoint* getBestSpawnPoint(PlayerInfo* player) const;
@@ -124,4 +134,9 @@
             std::set<SpawnPoint*> spawnpoints_;
             SubclassIdentifier<ControllableEntity> defaultControllableEntity_;
+
+            XMLFile* statsOverlay_;
+
+            // Config Values
+            std::string statsOverlayName_;
     };
 }
Index: code/branches/presentation/src/orxonox/overlays/CMakeLists.txt
===================================================================
--- code/branches/presentation/src/orxonox/overlays/CMakeLists.txt	(revision 2491)
+++ code/branches/presentation/src/orxonox/overlays/CMakeLists.txt	(revision 2492)
@@ -9,4 +9,5 @@
 ADD_SOURCE_DIRECTORY(SRC_FILES hud)
 ADD_SOURCE_DIRECTORY(SRC_FILES notifications)
+ADD_SOURCE_DIRECTORY(SRC_FILES stats)
 
 ADD_SOURCE_FILES(SRC_FILES)
Index: code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 2491)
+++ code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 2492)
@@ -88,5 +88,5 @@
         setPosition(Vector2(0.0f, 0.0f));
         setRotation(Degree(0.0));
-        setAspectCorrection(true);
+        setAspectCorrection(false);
         setBackgroundMaterial("");
     }
Index: code/branches/presentation/src/orxonox/overlays/stats/CMakeLists.txt
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/CMakeLists.txt	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/CMakeLists.txt	(revision 2492)
@@ -0,0 +1,8 @@
+SET( SRC_FILES
+  CreateLines.cc
+  ScoreBoard.cc
+  Stats.cc
+  StatsTest.cc
+)
+
+ADD_SOURCE_FILES(SRC_FILES)
Index: code/branches/presentation/src/orxonox/overlays/stats/CreateLines.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/CreateLines.cc	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/CreateLines.cc	(revision 2492)
@@ -0,0 +1,103 @@
+/*
+ *   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:
+ *      Benjamin Hildebrandt
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#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"
+
+namespace orxonox
+{
+    CreateFactory(CreateLines);
+
+    /**
+        @brief Constructor: Creates a line.
+    */
+    CreateLines::CreateLines(BaseObject* creator)
+        : OrxonoxOverlay(creator)
+    {
+        RegisterObject(CreateLines);
+    }
+
+    /**
+        @brief Initializes the lines.
+    */
+    void CreateLines::XMLPort(Element& xmlElement, XMLPort::Mode mode)
+    {
+        SUPER(CreateLines, XMLPort, xmlElement, mode);
+    }
+
+    /**
+        @brief Ensures that the number of OverlayElements is equal to numberOfColumns.
+    */
+    void CreateLines::setNumberOfColumns(unsigned int numberOfColumns, unsigned int lineIndex) {
+
+        Ogre::OverlayManager* ovMan = Ogre::OverlayManager::getSingletonPtr();
+
+        unsigned int colIndex = 0;
+
+        while (textColumns_.size() < numberOfColumns) {
+
+            Ogre::TextAreaOverlayElement* tempTextArea = static_cast<Ogre::TextAreaOverlayElement*>(ovMan->createOverlayElement("TextArea", "StatsLineTextArea" + getName() + convertToString(lineIndex) + convertToString(colIndex)));
+            textColumns_.push_back(tempTextArea);
+            this->background_->addChild(tempTextArea);
+
+            colIndex++;
+
+        }
+
+        while (textColumns_.size() > numberOfColumns) {
+
+            this->background_->_removeChild(textColumns_.back());
+            ovMan->destroyOverlayElement(textColumns_.back());
+            textColumns_.pop_back();
+
+        }
+
+    }
+
+    void CreateLines::alignColumn(int columnIndex, float leftOffset, float topOffset) {
+
+        this->textColumns_[columnIndex]->setPosition(leftOffset, topOffset);
+
+    }
+
+    void CreateLines::setColumnText(int columnIndex, std::string columnText) {
+
+        this->textColumns_[columnIndex]->setCaption(columnText);
+
+    }
+
+}
Index: code/branches/presentation/src/orxonox/overlays/stats/CreateLines.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/CreateLines.h	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/CreateLines.h	(revision 2492)
@@ -0,0 +1,63 @@
+/*
+ *   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:
+ *      Benjamin Hildebrandt
+ *
+ */
+
+#ifndef _CreateLines_H__
+#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
+{
+    class _OrxonoxExport CreateLines : public OrxonoxOverlay
+    {
+
+    public: // functions
+        CreateLines(BaseObject* creator);
+        virtual ~CreateLines() {}
+
+        virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
+
+        void setNumberOfColumns(unsigned int numberOfColumns, unsigned int lineIndex);
+        void alignColumn(int columnIndex, float leftOffset, float topOffset);
+        void setColumnText(int columnIndex, std::string columnText);
+
+    private: // functions
+
+    private: // variables
+        std::vector<Ogre::TextAreaOverlayElement*> textColumns_;
+
+    };
+}
+
+#endif /* _CreateLines_H__ */
Index: code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.cc	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.cc	(revision 2492)
@@ -0,0 +1,109 @@
+/*
+ *   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:
+ *      Benjamin Hildebrandt
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#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 "CreateLines.h"
+
+namespace orxonox
+{
+    CreateFactory(Scoreboard);
+
+    /**
+        @brief Constructor: Creates the scoreboard.
+    */
+    Scoreboard::Scoreboard(BaseObject* creator)
+        : OrxonoxOverlay(creator)
+    {
+        RegisterObject(Scoreboard);
+
+        createlines_ = new CreateLines(this);
+        // this->gametype_ = new Gametype(this);
+    }
+
+    /**
+        @brief Initializes the lines.
+    */
+    void Scoreboard::XMLPort(Element& xmlElement, XMLPort::Mode mode)
+    {
+        SUPER(Scoreboard, XMLPort, xmlElement, mode);
+
+        printLines();
+
+        COUT(0) << "XMLPort executed." << std::endl;
+
+    }
+
+    /**
+        @brief Prints the scoreboard on the screen.
+    */
+    void Scoreboard::printLines() {
+
+        numberOfColumns = 2;
+        // numberOfLines = this->gametype_->getNumberOfPlayers();
+        numberOfLines = 3;
+        topOffset = 0.1;
+        lineSpacing = 0.1;
+
+        for (unsigned int i = 0; i < numberOfLines; i++) {
+
+            columnIndex = 0;
+            leftOffset = 0.1;
+
+            this->createlines_->setNumberOfColumns(numberOfColumns, i);
+
+            // columnText = this->gametype_->getPlayersName();
+            columnText = "PlayerName";
+            this->createlines_->alignColumn(columnIndex, topOffset, leftOffset);
+            this->createlines_->setColumnText(columnIndex, columnText);
+
+            columnIndex++;
+            leftOffset = leftOffset + 0.3;
+
+            // columnText = this->gametype_->getPlayersFrags();
+            columnText = "PlayerFrags";
+            this->createlines_->alignColumn(columnIndex, topOffset, leftOffset);
+            this->createlines_->setColumnText(columnIndex, columnText);
+
+            topOffset = topOffset + lineSpacing;
+
+        }
+
+    }
+
+}
Index: code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.h	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/Scoreboard.h	(revision 2492)
@@ -0,0 +1,77 @@
+/*
+ *   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:
+ *      Benjamin Hildebrandt
+ *
+ */
+
+#ifndef _Scoreboard_H__
+#define _Scoreboard_H__
+
+
+#include "OrxonoxPrereqs.h"
+#include <OgrePrerequisites.h>
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+
+#include "overlays/OrxonoxOverlay.h"
+#include "objects/Tickable.h"
+
+
+namespace orxonox
+{
+    class _OrxonoxExport Scoreboard : public OrxonoxOverlay
+    {
+
+    public: // functions
+        Scoreboard(BaseObject* creator);
+        ~Scoreboard() {}
+
+        virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
+
+        inline void setGametype(Gametype* gt)
+            { this->gametype_ = gt; }
+        inline Gametype* getGametype() const
+            { return this->gametype_; }
+
+        inline void setCreateLines(CreateLines* cl)
+            { this->createlines_ = cl; }
+        inline CreateLines* getCreateLines() const
+            { return this->createlines_; }
+
+    private: // functions
+        void printLines();
+
+    private: // variables
+        unsigned int numberOfColumns;
+        unsigned int numberOfLines;
+        unsigned int columnIndex;
+        float topOffset;
+        float leftOffset;
+        float lineSpacing;
+        std::string columnText;
+        Gametype* gametype_;
+        CreateLines* createlines_;
+    };
+}
+
+#endif /* _Scoreboard_H__ */
Index: code/branches/presentation/src/orxonox/overlays/stats/Stats.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/Stats.cc	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/Stats.cc	(revision 2492)
@@ -0,0 +1,113 @@
+/*
+ *   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:
+ *      Felix Schulthess
+ *   Co-authors:
+ *      Fabian 'x3n' Landau, Benjamin Hildebrandt
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#include "Stats.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"
+
+namespace orxonox
+{
+    CreateFactory(Stats);
+
+    /**
+        @brief Constructor: Creates and initializes the Stats panel.
+    */
+    Stats::Stats(BaseObject* creator)
+        : OrxonoxOverlay(creator)
+        , statsOverlayNoise_(0)
+        , statsOverlayBorder_(0)
+    {
+        RegisterObject(Stats);
+
+        this->setConfigValues();
+    }
+
+    /**
+        @brief Sets the config values, describing the size of the Stats panel.
+    */
+    void Stats::setConfigValues()
+    {
+        SetConfigValue(noiseSize_, 1.0f);
+    }
+
+    /**
+        @brief Initializes the Stats panel.
+    */
+    void Stats::XMLPort(Element& xmlElement, XMLPort::Mode mode)
+    {
+        OrxonoxOverlay::XMLPort(xmlElement, mode);
+
+        // create overlay and elements
+        Ogre::OverlayManager* ovMan = Ogre::OverlayManager::getSingletonPtr();
+
+        // create BorderPanel
+        this->statsOverlayBorder_ = static_cast<Ogre::BorderPanelOverlayElement*>(ovMan->createOverlayElement("BorderPanel", "StatsBorderPanel"));
+        this->statsOverlayBorder_->setMaterialName("StatsCenter");
+        this->statsOverlayBorder_->setBorderSize(0.02, 0.02, 0.02, 0.02);
+        this->statsOverlayBorder_->setBorderMaterialName("StatsBorder");
+        this->statsOverlayBorder_->setTopBorderUV(0.49, 0.0, 0.51, 0.5);
+        this->statsOverlayBorder_->setTopLeftBorderUV(0.0, 0.0, 0.5, 0.5);
+        this->statsOverlayBorder_->setTopRightBorderUV(0.5, 0.0, 1.0, 0.5);
+        this->statsOverlayBorder_->setLeftBorderUV(0.0, 0.49, 0.5, 0.51);
+        this->statsOverlayBorder_->setRightBorderUV(0.5, 0.49, 1.0, 0.5);
+        this->statsOverlayBorder_->setBottomBorderUV(0.49, 0.5, 0.51, 1.0);
+        this->statsOverlayBorder_->setBottomLeftBorderUV(0.0, 0.5, 0.5, 1.0);
+        this->statsOverlayBorder_->setBottomRightBorderUV(0.5, 0.5, 1.0, 1.0);
+
+        background_->addChild(statsOverlayBorder_);
+
+        // create noise
+        this->statsOverlayNoise_ = static_cast<Ogre::PanelOverlayElement*>(ovMan->createOverlayElement("Panel", "StatsNoise"));
+        this->statsOverlayNoise_->setPosition(0,0);
+        this->statsOverlayNoise_->setMaterialName("StatsNoiseSmall");
+        // comment following line to disable noise
+        background_->addChild(this->statsOverlayNoise_);
+
+    }
+
+    void Stats::tick(float dt)
+    {
+        // SUPER(Stats, tick, dt);
+
+            // this creates a flickering effect (extracts exactly 80% of the texture at a random location)
+            float uRand = (rand() & 1023) / 1023.0f * 0.2f;
+            float vRand = (rand() & 1023) / 1023.0f * 0.2f;
+            this->statsOverlayNoise_->setUV(uRand, vRand, 7.5f + uRand, 7.5f + vRand);
+    }
+
+}
Index: code/branches/presentation/src/orxonox/overlays/stats/Stats.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/Stats.h	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/Stats.h	(revision 2492)
@@ -0,0 +1,63 @@
+/*
+ *   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:
+ *      Felix Schulthess
+ *   Co-authors:
+ *      Fabian 'x3n' Landau, Benjamin Hildebrandt
+ *
+ */
+
+#ifndef _Stats_H__
+#define _Stats_H__
+
+
+#include "OrxonoxPrereqs.h"
+#include <OgrePrerequisites.h>
+#include <OgreBorderPanelOverlayElement.h>
+#include <OgreTextAreaOverlayElement.h>
+
+#include "overlays/OrxonoxOverlay.h"
+#include "objects/Tickable.h"
+
+
+namespace orxonox
+{
+    class _OrxonoxExport Stats : public OrxonoxOverlay, public Tickable
+    {
+    public: // functions
+        Stats(BaseObject* creator);
+        virtual ~Stats(){}
+
+        void setConfigValues();
+
+        virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
+
+        virtual void tick(float dt);
+
+    private: // variables
+        Ogre::PanelOverlayElement* statsOverlayNoise_;
+        Ogre::BorderPanelOverlayElement* statsOverlayBorder_;
+        float noiseSize_;
+    };
+}
+
+#endif /* _Stats_H__ */
Index: code/branches/presentation/src/orxonox/overlays/stats/StatsTest.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/StatsTest.cc	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/StatsTest.cc	(revision 2492)
@@ -0,0 +1,52 @@
+/*
+ *   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 "OrxonoxStableHeaders.h"
+#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/branches/presentation/src/orxonox/overlays/stats/StatsTest.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/stats/StatsTest.h	(revision 2492)
+++ code/branches/presentation/src/orxonox/overlays/stats/StatsTest.h	(revision 2492)
@@ -0,0 +1,48 @@
+/*
+ *   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__ */
Index: code/branches/presentation/src/util/MultiType.cc
===================================================================
--- code/branches/presentation/src/util/MultiType.cc	(revision 2491)
+++ code/branches/presentation/src/util/MultiType.cc	(revision 2492)
@@ -45,4 +45,6 @@
         switch (type)
         {
+            case MT_null:
+                this->reset(); return true;
             case MT_char:
                 return this->convert<char>(); break;
Index: code/branches/presentation/src/util/MultiType.h
===================================================================
--- code/branches/presentation/src/util/MultiType.h	(revision 2491)
+++ code/branches/presentation/src/util/MultiType.h	(revision 2492)
@@ -305,9 +305,11 @@
 
             /** @brief Current content gets deleted. New type is MT_null */
-            inline void                       reset()                         { if (this->value_) this->value_->reset(); }
-
-            template <typename T> inline void setType()                       { this->assignValue(T());                            } /** @brief Resets the value and changes the internal type to T. */
-            inline void                       setType(const MultiType& other) { this->setType(other.getType());                    } /** @brief Resets the value and changes the internal type to the type of the other MultiType. */
-            inline void                       setType(MT_Type type)           { this->reset(); this->convert(type); this->reset(); } /** @brief Resets the value and changes the internal type to the given type. */
+            inline void                       reset()                         { if (this->value_) delete this->value_; this->value_ = 0; }
+            /** @brief Current content gets overridden with default zero value */
+            inline void                       resetValue()                    { if (this->value_) this->value_->reset(); }
+
+            template <typename T> inline void setType()                       { this->assignValue(T());                                 } /** @brief Resets the value and changes the internal type to T. */
+            inline void                       setType(const MultiType& other) { this->setType(other.getType());                         } /** @brief Resets the value and changes the internal type to the type of the other MultiType. */
+            inline void                       setType(MT_Type type)           { this->reset(); this->convert(type); this->resetValue(); } /** @brief Resets the value and changes the internal type to the given type. */
 
             /** @brief Returns the current type. */
Index: code/branches/presentation/visual_studio/vc8/orxonox.vcproj
===================================================================
--- code/branches/presentation/visual_studio/vc8/orxonox.vcproj	(revision 2491)
+++ code/branches/presentation/visual_studio/vc8/orxonox.vcproj	(revision 2492)
@@ -840,4 +840,16 @@
 				</Filter>
 				<Filter
+					Name="stats"
+					>
+					<File
+						RelativePath="..\..\src\orxonox\overlays\stats\Stats.cc"
+						>
+					</File>
+					<File
+						RelativePath="..\..\src\orxonox\overlays\stats\StatsTest.cc"
+						>
+					</File>
+				</Filter>
+				<Filter
 					Name="notifications"
 					>
@@ -1458,4 +1470,16 @@
 					<File
 						RelativePath="..\..\src\orxonox\overlays\debug\DebugRTRText.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="stats"
+					>
+					<File
+						RelativePath="..\..\src\orxonox\overlays\stats\Stats.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\src\orxonox\overlays\stats\StatsTest.h"
 						>
 					</File>
