Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSClient.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSClient.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSClient.h	(revision 11054)
@@ -43,7 +43,7 @@
         ~GSClient();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
     };
 }
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSGraphics.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSGraphics.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSGraphics.h	(revision 11054)
@@ -53,7 +53,7 @@
         ~GSGraphics();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
     private:
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.cc	(revision 11054)
@@ -65,8 +65,8 @@
     GSLevel::GSLevel(const GameStateInfo& info)
         : GameState(info)
-        , gameInputState_(0)
-        , guiMouseOnlyInputState_(0)
-        , guiKeysOnlyInputState_(0)
-        , startFile_(0)
+        , gameInputState_(nullptr)
+        , guiMouseOnlyInputState_(nullptr)
+        , guiKeysOnlyInputState_(nullptr)
+        , startFile_(nullptr)
         , bShowIngameGUI_(false)
     {
@@ -143,7 +143,7 @@
 #endif
 
-            gameInputState_->setHandler(0);
-            guiMouseOnlyInputState_->setHandler(0);
-            guiKeysOnlyInputState_->setHandler(0);
+            gameInputState_->setHandler(nullptr);
+            guiMouseOnlyInputState_->setHandler(nullptr);
+            guiKeysOnlyInputState_->setHandler(nullptr);
             InputManager::getInstance().destroyState("game");
             InputManager::getInstance().destroyState("guiKeysOnly");
@@ -156,5 +156,5 @@
         {
             ModifyConsoleCommand(__CC_changeGame_name).deactivate();
-            ModifyConsoleCommand(__CC_reloadLevel_name).setObject(NULL).deactivate();
+            ModifyConsoleCommand(__CC_reloadLevel_name).setObject(nullptr).deactivate();
         }
     }
@@ -164,12 +164,12 @@
         // Note: Temporarily moved to GSRoot.
         //// Call the scene objects
-        //for (ObjectList<Tickable>::iterator it = ObjectList<Tickable>::begin(); it; ++it)
-        //    it->tick(time.getDeltaTime() * this->timeFactor_);
+        //for (Tickable* tickable : ObjectList<Tickable>())
+        //    tickable->tick(time.getDeltaTime() * this->timeFactor_);
     }
 
     void GSLevel::prepareObjectTracking()
     {
-        for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it != ObjectList<BaseObject>::end(); ++it)
-            this->staticObjects_.insert(*it);
+        for (BaseObject* baseObject : ObjectList<BaseObject>())
+            this->staticObjects_.insert(baseObject);
     }
 
@@ -178,10 +178,10 @@
         orxout(internal_info) << "Remaining objects:" << endl;
         unsigned int i = 0;
-        for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it != ObjectList<BaseObject>::end(); ++it)
-        {
-            std::set<BaseObject*>::const_iterator find = this->staticObjects_.find(*it);
+        for (BaseObject* baseObject : ObjectList<BaseObject>())
+        {
+            std::set<BaseObject*>::const_iterator find = this->staticObjects_.find(baseObject);
             if (find == this->staticObjects_.end())
             {
-                orxout(internal_warning) << ++i << ": " << it->getIdentifier()->getName() << " (" << *it << "), references: " << it->getReferenceCount() << endl;
+                orxout(internal_warning) << ++i << ": " << baseObject->getIdentifier()->getName() << " (" << baseObject << "), references: " << baseObject->getReferenceCount() << endl;
             }
         }
@@ -215,12 +215,15 @@
     void GSLevel::unloadLevelAsClient()
     {
-        for (ObjectList<Level>::iterator it = ObjectList<Level>::begin(); it != ObjectList<Level>::end(); )
+        ObjectList<Level> listLevel;
+        for (ObjectList<Level>::iterator it = listLevel.begin(); it != listLevel.end(); )
         {
             StrongPtr<Level> level = *(it++); // StrongPtr prevents that the Level gets destroyed while we loop over it
-            for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(level); it != ObjectList<BaseObject>::end(level); )
+            ObjectList<BaseObject> listBaseObject(level);
+            for (ObjectList<BaseObject>::iterator it = listBaseObject.begin(); it != listBaseObject.end(); )
                 (it++)->destroy();
         }
 
-        for (ObjectList<Synchronisable>::iterator it = ObjectList<Synchronisable>::begin(); it != ObjectList<Synchronisable>::end(); )
+        ObjectList<Synchronisable> listSynchronisable;
+        for (ObjectList<Synchronisable>::iterator it = listSynchronisable.begin(); it != listSynchronisable.end(); )
         {
             if (it->getSyncMode() != 0x0)
@@ -235,7 +238,7 @@
         // export all states
         std::vector<GSLevelMementoState*> states;
-        for (ObjectList<GSLevelMemento>::iterator it = ObjectList<GSLevelMemento>::begin(); it != ObjectList<GSLevelMemento>::end(); ++it)
-        {
-            GSLevelMementoState* state = it->exportMementoState();
+        for (GSLevelMemento* memento : ObjectList<GSLevelMemento>())
+        {
+            GSLevelMementoState* state = memento->exportMementoState();
             if (state)
                 states.push_back(state);
@@ -247,10 +250,10 @@
 
         // import all states
-        for (ObjectList<GSLevelMemento>::iterator it = ObjectList<GSLevelMemento>::begin(); it != ObjectList<GSLevelMemento>::end(); ++it)
-            it->importMementoState(states);
+        for (GSLevelMemento* memento : ObjectList<GSLevelMemento>())
+            memento->importMementoState(states);
 
         // delete states
-        for (size_t i = 0; i < states.size(); ++i)
-            delete states[i];
+        for (GSLevelMementoState* state : states)
+            delete state;
     }
 
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSLevel.h	(revision 11054)
@@ -44,7 +44,7 @@
         ~GSLevel();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
         static void startMainMenu(void); //!< Starts the MainMenu
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSLevelMemento.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSLevelMemento.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSLevelMemento.h	(revision 11054)
@@ -48,5 +48,5 @@
         protected:
             /**
-             * Returns the state of this memento. Returns NULL if no state needed to persist.
+             * Returns the state of this memento. Returns nullptr if no state needed to persist.
              */
             virtual GSLevelMementoState* exportMementoState() = 0;
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.cc	(revision 11054)
@@ -73,5 +73,5 @@
 
         // create an empty Scene
-        this->scene_ = new Scene(NULL);
+        this->scene_ = new Scene(nullptr);
         this->scene_->setSyncMode( 0x0 );
         // and a Camera
@@ -132,5 +132,5 @@
         InputManager::getInstance().leaveState("MainMenuHackery");
 
-        GraphicsManager::getInstance().setCamera(0);
+        GraphicsManager::getInstance().setCamera(nullptr);
         GUIManager::getInstance().setBackgroundImage("");
         GUIManager::hideGUI("MainMenu");
@@ -140,5 +140,5 @@
         ModifyConsoleCommand(__CC_startClient_name    ).deactivate();
         ModifyConsoleCommand(__CC_startDedicated_name ).deactivate();
-        ModifyConsoleCommand(__CC_setMainMenuSoundPath_name).setObject(0);
+        ModifyConsoleCommand(__CC_setMainMenuSoundPath_name).setObject(nullptr);
     }
 
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSMainMenu.h	(revision 11054)
@@ -44,7 +44,7 @@
         ~GSMainMenu();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
         void setConfigValues();
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSMasterServer.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSMasterServer.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSMasterServer.h	(revision 11054)
@@ -45,7 +45,7 @@
       ~GSMasterServer();
 
-      void activate();
-      void deactivate();
-      void update(const Clock& time);
+      virtual void activate() override;
+      virtual void deactivate() override;
+      virtual void update(const Clock& time) override;
 
     private:
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.cc	(revision 11054)
@@ -34,4 +34,5 @@
 #include "core/GameMode.h"
 #include "core/command/ConsoleCommandIncludes.h"
+#include "core/object/ObjectList.h"
 #include "network/NetworkFunctionIncludes.h"
 #include "tools/Timer.h"
@@ -73,11 +74,11 @@
     {
         unsigned int nr=0;
-        for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it; ++it)
-        {
-            Synchronisable* synchronisable = orxonox_cast<Synchronisable*>(*it);
+        for (BaseObject* baseObject : ObjectList<BaseObject>())
+        {
+            Synchronisable* synchronisable = orxonox_cast<Synchronisable*>(baseObject);
             if (synchronisable)
-                orxout(debug_output) << "object: " << it->getIdentifier()->getName() << " id: " << synchronisable->getObjectID() << endl;
+                orxout(debug_output) << "object: " << baseObject->getIdentifier()->getName() << " id: " << synchronisable->getObjectID() << endl;
             else
-                orxout(debug_output) << "object: " << it->getIdentifier()->getName() << endl;
+                orxout(debug_output) << "object: " << baseObject->getIdentifier()->getName() << endl;
             nr++;
         }
@@ -98,8 +99,8 @@
     void GSRoot::deactivate()
     {
-        ModifyConsoleCommand(__CC_setTimeFactor_name).setObject(0);
-        ModifyConsoleCommand(__CC_getTimeFactor_name).setObject(0);
-        ModifyConsoleCommand(__CC_setPause_name).setObject(0);
-        ModifyConsoleCommand(__CC_pause_name).setObject(0);
+        ModifyConsoleCommand(__CC_setTimeFactor_name).setObject(nullptr);
+        ModifyConsoleCommand(__CC_getTimeFactor_name).setObject(nullptr);
+        ModifyConsoleCommand(__CC_setPause_name).setObject(nullptr);
+        ModifyConsoleCommand(__CC_pause_name).setObject(nullptr);
     }
 
@@ -112,5 +113,6 @@
         }
 
-        for (ObjectList<Timer>::iterator it = ObjectList<Timer>::begin(); it; )
+        ObjectList<Timer> listTimer;
+        for (ObjectList<Timer>::iterator it = listTimer.begin(); it; )
         {
             Timer* object = *it;
@@ -128,5 +130,6 @@
         }
         float realdt = leveldt * TimeFactorListener::getTimeFactor();
-        for (ObjectList<Tickable>::iterator it = ObjectList<Tickable>::begin(); it; )
+        ObjectList<Tickable> listTickable;
+        for (ObjectList<Tickable>::iterator it = listTickable.begin(); it; )
         {
             Tickable* object = *it;
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSRoot.h	(revision 11054)
@@ -44,7 +44,7 @@
         static void printObjects();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
         // this has to be public because proteced triggers a bug in msvc
@@ -59,5 +59,5 @@
 
     protected:
-        virtual void changedTimeFactor(float factor_new, float factor_old);
+        virtual void changedTimeFactor(float factor_new, float factor_old) override;
 
     private:
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.cc	(revision 11054)
@@ -44,5 +44,5 @@
     GSServer::GSServer(const GameStateInfo& info)
         : GameState(info)
-        , server_(0)
+        , server_(nullptr)
     {
     }
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSServer.h	(revision 11054)
@@ -43,7 +43,7 @@
         ~GSServer();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
     private:
Index: code/branches/cpp11_v3/src/orxonox/gamestates/GSStandalone.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/gamestates/GSStandalone.h	(revision 11053)
+++ code/branches/cpp11_v3/src/orxonox/gamestates/GSStandalone.h	(revision 11054)
@@ -41,7 +41,7 @@
         ~GSStandalone();
 
-        void activate();
-        void deactivate();
-        void update(const Clock& time);
+        virtual void activate() override;
+        virtual void deactivate() override;
+        virtual void update(const Clock& time) override;
 
     private:
