Index: code/branches/cpp11_v2/src/orxonox/LevelManager.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/LevelManager.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/LevelManager.cc	(revision 10919)
@@ -78,7 +78,6 @@
     {
         // Delete all the LevelInfoItem objects because the LevelManager created them
-        std::set<LevelInfoItem*, LevelInfoCompare>::iterator it = availableLevels_.begin();
-        for (; it != availableLevels_.end(); ++it)
-            delete *it;
+        for (LevelInfoItem* info : availableLevels_)
+            delete info;
     }
 
@@ -279,7 +278,7 @@
 
                 // Find the LevelInfo object we've just loaded (if there was one)
-                for(ObjectList<LevelInfo>::iterator item = ObjectList<LevelInfo>::begin(); item != ObjectList<LevelInfo>::end(); ++item)
-                    if(item->getXMLFilename() == *it)
-                        info = item->copy();
+                for(LevelInfo* levelInfo : ObjectList<LevelInfo>())
+                    if(levelInfo->getXMLFilename() == *it)
+                        info = levelInfo->copy();
 
                 // We don't need the loaded stuff anymore
Index: code/branches/cpp11_v2/src/orxonox/MoodManager.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/MoodManager.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/MoodManager.cc	(revision 10919)
@@ -103,6 +103,6 @@
     /*static*/ void MoodListener::changedMood(const std::string& mood)
     {
-        for (ObjectList<MoodListener>::iterator it = ObjectList<MoodListener>::begin(); it; ++it)
-            it->moodChanged(mood);
+        for (MoodListener* listener : ObjectList<MoodListener>())
+            listener->moodChanged(mood);
     }
 }
Index: code/branches/cpp11_v2/src/orxonox/PlayerManager.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/PlayerManager.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/PlayerManager.cc	(revision 10919)
@@ -111,7 +111,7 @@
         else
         {
-            for (ObjectList<PlayerInfo>::iterator it = ObjectList<PlayerInfo>::begin(); it != ObjectList<PlayerInfo>::end(); ++it)
-                if (it->getClientID() == clientID)
-                    return (*it);
+            for (PlayerInfo* info : ObjectList<PlayerInfo>())
+                if (info->getClientID() == clientID)
+                    return info;
         }
         return nullptr;
Index: code/branches/cpp11_v2/src/orxonox/Radar.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/Radar.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/Radar.cc	(revision 10919)
@@ -84,7 +84,7 @@
         this->radarObjects_.insert(rv);
         // iterate through all radarlisteners and notify them
-        for (ObjectList<RadarListener>::iterator itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
-        {
-            (*itListener)->addObject(rv);
+        for (RadarListener* listener : ObjectList<RadarListener>())
+        {
+            listener->addObject(rv);
         }
     }
@@ -95,7 +95,7 @@
         this->radarObjects_.erase(rv);
         // iterate through all radarlisteners and notify them
-        for (ObjectList<RadarListener>::iterator itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
-        {
-            (*itListener)->removeObject(rv);
+        for (RadarListener* listener : ObjectList<RadarListener>())
+        {
+            listener->removeObject(rv);
         }
     }
@@ -130,7 +130,7 @@
         }
 
-        for (ObjectList<RadarListener>::iterator itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
-        {
-            (*itListener)->radarTick(dt);
+        for (RadarListener* listener : ObjectList<RadarListener>())
+        {
+            listener->radarTick(dt);
         }
     }
@@ -200,7 +200,8 @@
         // iterate through all Radar Objects
         unsigned int i = 0;
-        for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it, ++i)
-        {
-            orxout(debug_output) << i++ << ": " << (*it)->getRVWorldPosition() << endl;
+        for (RadarViewable* viewable : ObjectList<RadarViewable>())
+        {
+            orxout(debug_output) << i++ << ": " << viewable->getRVWorldPosition() << endl;
+            ++i;
         }
     }
@@ -208,7 +209,7 @@
     void Radar::radarObjectChanged(RadarViewable* rv)
     {
-        for (ObjectList<RadarListener>::iterator itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
-        {
-          (*itListener)->objectChanged(rv);
+        for (RadarListener* listener : ObjectList<RadarListener>())
+        {
+            listener->objectChanged(rv);
         }
     }
Index: code/branches/cpp11_v2/src/orxonox/Scene.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/Scene.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/Scene.cc	(revision 10919)
@@ -389,6 +389,6 @@
     /*static*/ void Scene::consoleCommand_debugDrawPhysics(bool bDraw, bool bFill, float fillAlpha)
     {
-        for (ObjectListIterator<Scene> it = ObjectList<Scene>::begin(); it != ObjectList<Scene>::end(); ++it)
-            it->setDebugDrawPhysics(bDraw, bFill, fillAlpha);
+        for (Scene* scene : ObjectList<Scene>())
+            scene->setDebugDrawPhysics(bDraw, bFill, fillAlpha);
     }
 }
Index: code/branches/cpp11_v2/src/orxonox/chat/ChatHistory.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/chat/ChatHistory.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/chat/ChatHistory.cc	(revision 10919)
@@ -160,11 +160,7 @@
   void ChatHistory::debug_printhist()
   {
-    /* create deque iterator */
-    std::deque<std::string>::iterator it;
-
     /* output all the strings */
-    for( it = this->hist_buffer.begin(); it != this->hist_buffer.end();
-      ++it )
-      orxout(debug_output) << *it << endl;
+    for( const std::string& hist : this->hist_buffer )
+      orxout(debug_output) << hist << endl;
 
     /* output size */
Index: code/branches/cpp11_v2/src/orxonox/collisionshapes/CompoundCollisionShape.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/collisionshapes/CompoundCollisionShape.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/collisionshapes/CompoundCollisionShape.cc	(revision 10919)
@@ -200,12 +200,12 @@
         bool bEmpty = true; // Whether the CompoundCollisionShape is empty.
         // Iterate over all CollisionShapes that belong to this CompoundCollisionShape.
-        for (std::map<CollisionShape*, btCollisionShape*>::const_iterator it = this->attachedShapes_.begin(); it != this->attachedShapes_.end(); ++it)
+        for (const auto& mapEntry : this->attachedShapes_)
         {
             // TODO: Make sure this is correct.
-            if (it->second)
+            if (mapEntry.second)
             {
                 bEmpty = false;
-                if (!it->first->hasTransform() && bPrimitive)
-                    primitive = it->second;
+                if (!mapEntry.first->hasTransform() && bPrimitive)
+                    primitive = mapEntry.second;
                 else
                 {
Index: code/branches/cpp11_v2/src/orxonox/controllers/FormationController.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/controllers/FormationController.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/controllers/FormationController.cc	(revision 10919)
@@ -97,21 +97,21 @@
             this->removeFromFormation();
 
-            for (ObjectList<FormationController>::iterator it = ObjectList<FormationController>::begin(); it; ++it)
-            {
-                if (*it != this)
+            for (FormationController* controller : ObjectList<FormationController>())
+            {
+                if (controller != this)
                 {
-                    if (it->myMaster_ == this)
+                    if (controller->myMaster_ == this)
                     {
-                        orxout(internal_error) << this << " is still master in " << (*it) << endl;
-                        it->myMaster_ = nullptr;
+                        orxout(internal_error) << this << " is still master in " << controller << endl;
+                        controller->myMaster_ = nullptr;
                     }
 
                     while (true)
                     {
-                        std::vector<FormationController*>::iterator it2 = std::find(it->slaves_.begin(), it->slaves_.end(), this);
-                        if (it2 != it->slaves_.end())
+                        std::vector<FormationController*>::iterator it2 = std::find(controller->slaves_.begin(), controller->slaves_.end(), this);
+                        if (it2 != controller->slaves_.end())
                         {
-                            orxout(internal_error) << this << " is still slave in " << (*it) << endl;
-                            it->slaves_.erase(it2);
+                            orxout(internal_error) << this << " is still slave in " << controller << endl;
+                            controller->slaves_.erase(it2);
                         }
                         else
@@ -140,12 +140,12 @@
     void FormationController::formationflight(const bool form)
     {
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -171,12 +171,12 @@
     void FormationController::masteraction(const int action)
     {
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -201,12 +201,12 @@
     void FormationController::passivebehaviour(const bool passive)
     {
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -228,12 +228,12 @@
     void FormationController::formationsize(const int size)
     {
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -398,5 +398,5 @@
         int teamSize = 0;
         //go through all pawns
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
 
@@ -405,7 +405,7 @@
             if (!gt)
             {
-                gt=it->getGametype();
-            }
-            if (!FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it),gt))
+                gt=pawn->getGametype();
+            }
+            if (!FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn),gt))
                 continue;
 
@@ -413,8 +413,8 @@
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -422,5 +422,5 @@
 
             //is pawn oneself?
-            if (orxonox_cast<ControllableEntity*>(*it) == this->getControllableEntity())
+            if (orxonox_cast<ControllableEntity*>(pawn) == this->getControllableEntity())
                 continue;
 
@@ -433,5 +433,5 @@
                 continue;
 
-            float distance = (it->getPosition() - this->getControllableEntity()->getPosition()).length();
+            float distance = (pawn->getPosition() - this->getControllableEntity()->getPosition()).length();
 
             // is pawn in range?
@@ -520,7 +520,7 @@
             newMaster->myMaster_ = nullptr;
 
-            for(std::vector<FormationController*>::iterator it = newMaster->slaves_.begin(); it != newMaster->slaves_.end(); it++)
-            {
-                (*it)->myMaster_ = newMaster;
+            for(FormationController* slave : newMaster->slaves_)
+            {
+                slave->myMaster_ = newMaster;
             }
         }
@@ -549,7 +549,7 @@
                 newMaster->myMaster_ = nullptr;
 
-                for(std::vector<FormationController*>::iterator it = newMaster->slaves_.begin(); it != newMaster->slaves_.end(); it++)
+                for(FormationController* slave : newMaster->slaves_)
                 {
-                    (*it)->myMaster_ = newMaster;
+                    slave->myMaster_ = newMaster;
                 }
             }
@@ -777,12 +777,12 @@
         std::vector<FormationController*> allMasters;
 
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
             Controller* controller = nullptr;
 
-            if (it->getController())
-                controller = it->getController();
-            else if (it->getXMLController())
-                controller = it->getXMLController();
+            if (pawn->getController())
+                controller = pawn->getController();
+            else if (pawn->getXMLController())
+                controller = pawn->getXMLController();
 
             if (!controller)
@@ -791,5 +791,5 @@
             currentHumanController = orxonox_cast<NewHumanController*>(controller);
 
-            if(currentHumanController) humanPawn = *it;
+            if(currentHumanController) humanPawn = pawn;
 
             FormationController *aiController = orxonox_cast<FormationController*>(controller);
@@ -808,9 +808,10 @@
             int i = 0;
 
-            for(std::vector<FormationController*>::iterator it = allMasters.begin(); it != allMasters.end(); it++, i++)
-            {
-                if (!FormationController::sameTeam((*it)->getControllableEntity(), humanPawn, (*it)->getGametype())) continue;
-                distance = posHuman - (*it)->getControllableEntity()->getPosition().length();
+            for(FormationController* master : allMasters)
+            {
+                if (!FormationController::sameTeam(master->getControllableEntity(), humanPawn, master->getGametype())) continue;
+                distance = posHuman - master->getControllableEntity()->getPosition().length();
                 if(distance < minDistance) index = i;
+                i++;
             }
             allMasters[index]->followInit(humanPawn);
@@ -847,14 +848,14 @@
         NewHumanController *currentHumanController = nullptr;
 
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
-        {
-            if (!it->getController())
-                continue;
-
-            currentHumanController = orxonox_cast<NewHumanController*>(it->getController());
+        for (Pawn* pawn : ObjectList<Pawn>())
+        {
+            if (!pawn->getController())
+                continue;
+
+            currentHumanController = orxonox_cast<NewHumanController*>(pawn->getController());
             if(currentHumanController)
             {
-                if (!FormationController::sameTeam(this->getControllableEntity(), *it, this->getGametype())) continue;
-                humanPawn = *it;
+                if (!FormationController::sameTeam(this->getControllableEntity(), pawn, this->getGametype())) continue;
+                humanPawn = pawn;
                 break;
             }
@@ -918,22 +919,22 @@
         this->forgetTarget();
 
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
-        {
-            if (FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it), this->getGametype()))
+        for (Pawn* pawn : ObjectList<Pawn>())
+        {
+            if (FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), this->getGametype()))
                 continue;
 
             /* So AI won't choose invisible Spaceships as target */
-            if (!it->getRadarVisibility())
-                continue;
-
-            if (static_cast<ControllableEntity*>(*it) != this->getControllableEntity())
+            if (!pawn->getRadarVisibility())
+                continue;
+
+            if (static_cast<ControllableEntity*>(pawn) != this->getControllableEntity())
             {
                 float speed = this->getControllableEntity()->getVelocity().length();
                 Vector3 distanceCurrent = this->targetPosition_ - this->getControllableEntity()->getPosition();
-                Vector3 distanceNew = it->getPosition() - this->getControllableEntity()->getPosition();
-                if (!this->target_ || it->getPosition().squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceNew) / speed / distanceNew.length()) / math::twoPi)
+                Vector3 distanceNew = pawn->getPosition() - this->getControllableEntity()->getPosition();
+                if (!this->target_ || pawn->getPosition().squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceNew) / speed / distanceNew.length()) / math::twoPi)
                         < this->targetPosition_.squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceCurrent) / speed / distanceCurrent.length()) / math::twoPi) + rnd(-250, 250))
                 {
-                    this->setTarget(*it);
+                    this->setTarget(pawn);
                 }
             }
Index: code/branches/cpp11_v2/src/orxonox/controllers/ScriptController.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/controllers/ScriptController.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/controllers/ScriptController.cc	(revision 10919)
@@ -121,18 +121,14 @@
 
       /* Debugging: print all the scriptcontroller object pointers */
-      for(ObjectList<ScriptController>::iterator it = 
-        ObjectList<ScriptController>::begin(); 
-        it != ObjectList<ScriptController>::end(); ++it)
-      { orxout(verbose) << "Have object in list: " << *it << endl; }
+      for(ScriptController* controller : ObjectList<ScriptController>())
+      { orxout(verbose) << "Have object in list: " << controller << endl; }
 
       /* Find the first one with a nonzero ID */
-      for(ObjectList<ScriptController>::iterator it = 
-        ObjectList<ScriptController>::begin(); 
-        it != ObjectList<ScriptController>::end(); ++it)
+      for(ScriptController* controller : ObjectList<ScriptController>())
       { 
         // TODO: do some selection here. Currently just returns the first one
-        if( (*it)->getID() > 0 )
-        { orxout(verbose) << "Controller to return: " << *it << endl;
-          return *it; 
+        if( controller->getID() > 0 )
+        { orxout(verbose) << "Controller to return: " << controller << endl;
+          return controller;
         }
       
Index: code/branches/cpp11_v2/src/orxonox/controllers/WaypointPatrolController.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/controllers/WaypointPatrolController.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/controllers/WaypointPatrolController.cc	(revision 10919)
@@ -87,14 +87,14 @@
         float shortestsqdistance = (float)static_cast<unsigned int>(-1);
 
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
-            if (ArtificialController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it), this->getGametype()))
+            if (ArtificialController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), this->getGametype()))
                 continue;
 
-            float sqdistance = it->getPosition().squaredDistance(myposition);
+            float sqdistance = pawn->getPosition().squaredDistance(myposition);
             if (sqdistance < shortestsqdistance)
             {
                 shortestsqdistance = sqdistance;
-                this->target_ = (*it);
+                this->target_ = pawn;
             }
         }
Index: code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc	(revision 10919)
@@ -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;
             }
         }
@@ -235,7 +235,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,6 +247,6 @@
 
         // 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
Index: code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc	(revision 10919)
@@ -74,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++;
         }
Index: code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc	(revision 10919)
@@ -571,9 +571,9 @@
         // find correct scene
         Scene* scene = nullptr;
-        for (ObjectList<Scene>::iterator it = ObjectList<Scene>::begin(); it != ObjectList<Scene>::end(); ++it)
-        {
-            if (it->getName() == state->sceneName_)
-            {
-                scene = *it;
+        for (Scene* someScene : ObjectList<Scene>())
+        {
+            if (someScene->getName() == state->sceneName_)
+            {
+                scene = someScene;
                 break;
             }
Index: code/branches/cpp11_v2/src/orxonox/gametypes/Mission.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gametypes/Mission.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/gametypes/Mission.cc	(revision 10919)
@@ -101,7 +101,6 @@
     void Mission::setTeams()
     { //Set pawn-colours
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+        for (Pawn* pawn : ObjectList<Pawn>())
         {
-            Pawn* pawn = static_cast<Pawn*>(*it);
             if (!pawn)
                 continue;
@@ -111,8 +110,8 @@
     void Mission::endMission(bool accomplished)
     {
-        for (ObjectList<Mission>::iterator it = ObjectList<Mission>::begin(); it != ObjectList<Mission>::end(); ++it)
+        for (Mission* mission : ObjectList<Mission>())
         { //TODO: make sure that only the desired mission is ended !! This is a dirty HACK, that would end ALL missions!
-            it->setMissionAccomplished(accomplished);
-            it->end();
+            mission->setMissionAccomplished(accomplished);
+            mission->end();
         }
     }
@@ -120,7 +119,7 @@
     void Mission::setLivesWrapper(unsigned int amount)
     {
-        for (ObjectList<Mission>::iterator it = ObjectList<Mission>::begin(); it != ObjectList<Mission>::end(); ++it)
+        for (Mission* mission : ObjectList<Mission>())
         { //TODO: make sure that only the desired mission is ended !! This is a dirty HACK, that would affect ALL missions!
-            it->setLives(amount);
+            mission->setLives(amount);
         }
     }
Index: code/branches/cpp11_v2/src/orxonox/infos/GametypeInfo.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/infos/GametypeInfo.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/infos/GametypeInfo.cc	(revision 10919)
@@ -461,30 +461,30 @@
     void GametypeInfo::dispatchAnnounceMessage(const std::string& message) const
     {
-        for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
-            it->announcemessage(this, message);
+        for (GametypeMessageListener* listener : ObjectList<GametypeMessageListener>())
+            listener->announcemessage(this, message);
     }
 
     void GametypeInfo::dispatchKillMessage(const std::string& message) const
     {
-        for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
-            it->killmessage(this, message);
+        for (GametypeMessageListener* listener : ObjectList<GametypeMessageListener>())
+            listener->killmessage(this, message);
     }
 
     void GametypeInfo::dispatchDeathMessage(const std::string& message) const
     {
-        for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
-            it->deathmessage(this, message);
+        for (GametypeMessageListener* listener : ObjectList<GametypeMessageListener>())
+            listener->deathmessage(this, message);
     }
 
      void GametypeInfo::dispatchStaticMessage(const std::string& message, const ColourValue& colour) const
     {
-        for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
-            it->staticmessage(this, message, colour);
+        for (GametypeMessageListener* listener : ObjectList<GametypeMessageListener>())
+            listener->staticmessage(this, message, colour);
     }
 
      void GametypeInfo::dispatchFadingMessage(const std::string& message) const
     {
-        for (ObjectList<GametypeMessageListener>::iterator it = ObjectList<GametypeMessageListener>::begin(); it != ObjectList<GametypeMessageListener>::end(); ++it)
-            it->fadingmessage(this, message);
+        for (GametypeMessageListener* listener : ObjectList<GametypeMessageListener>())
+            listener->fadingmessage(this, message);
     }
 }
Index: code/branches/cpp11_v2/src/orxonox/interfaces/NotificationListener.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/interfaces/NotificationListener.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/interfaces/NotificationListener.cc	(revision 10919)
@@ -108,9 +108,9 @@
     {
         // Iterate through all NotificationListeners and notify them by calling the method they overloaded.
-        for(ObjectList<NotificationListener>::iterator it = ObjectList<NotificationListener>::begin(); it != ObjectList<NotificationListener>::end(); ++it)
+        for(NotificationListener* listener : ObjectList<NotificationListener>())
         {
             // If the notification is a message.
             if(!isCommand)
-                it->registerNotification(message, sender, notificationMessageType::Value(messageType));
+                listener->registerNotification(message, sender, notificationMessageType::Value(messageType));
 
             // If the notification is a command.
@@ -119,5 +119,5 @@
                 notificationCommand::Value command = str2Command(message);
                 if(command != notificationCommand::none)
-                    it->executeCommand(command, sender);
+                    listener->executeCommand(command, sender);
             }
         }
Index: code/branches/cpp11_v2/src/orxonox/interfaces/PickupCarrier.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/interfaces/PickupCarrier.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/interfaces/PickupCarrier.cc	(revision 10919)
@@ -101,7 +101,7 @@
         // Go recursively through all children to check whether they are a target.
         std::vector<PickupCarrier*>* children = this->getCarrierChildren();
-        for(std::vector<PickupCarrier*>::const_iterator it = children->begin(); it != children->end(); it++)
+        for(PickupCarrier* carrier : *children)
         {
-            if((*it)->isTarget(pickup))
+            if(carrier->isTarget(pickup))
             {
                 isTarget = true;
Index: code/branches/cpp11_v2/src/orxonox/interfaces/PickupListener.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/interfaces/PickupListener.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/interfaces/PickupListener.cc	(revision 10919)
@@ -74,6 +74,6 @@
 
         // Iterate through all PickupListeners and notify them by calling the method they overloaded.
-        for(ObjectList<PickupListener>::iterator it = ObjectList<PickupListener>::begin(); it != ObjectList<PickupListener>::end(); ++it)
-            it->pickupChangedUsed(pickup, used);
+        for(PickupListener* listener : ObjectList<PickupListener>())
+            listener->pickupChangedUsed(pickup, used);
     }
 
@@ -92,6 +92,6 @@
 
         // Iterate through all PickupListeners and notify them by calling the method they overloaded.
-        for(ObjectList<PickupListener>::iterator it = ObjectList<PickupListener>::begin(); it != ObjectList<PickupListener>::end(); ++it)
-            it->pickupChangedPickedUp(pickup, pickedUp);
+        for(PickupListener* listener : ObjectList<PickupListener>())
+            listener->pickupChangedPickedUp(pickup, pickedUp);
     }
 
Index: code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc	(revision 10919)
@@ -85,7 +85,7 @@
             {
                 // We have no ship, so the effects are not attached and won't be destroyed automatically
-                for (std::vector<EffectContainer*>::const_iterator it = this->effectContainers_.begin(); it != this->effectContainers_.end(); ++it)
-                    for (std::vector<WorldEntity*>::const_iterator it2 = (*it)->getEffectsBegin(); it2 != (*it)->getEffectsBegin(); ++it2)
-                        (*it2)->destroy();
+                for (EffectContainer* container : this->effectContainers_)
+                    for (std::vector<WorldEntity*>::const_iterator it = container->getEffectsBegin(); it != container->getEffectsBegin(); ++it)
+                        (*it)->destroy();
                 if (this->defEngineSndNormal_)
                     this->defEngineSndNormal_->destroy();
@@ -178,6 +178,6 @@
 
                 // Update all effect conditions
-                for (std::vector<EffectContainer*>::const_iterator it = this->effectContainers_.begin(); it != this->effectContainers_.end(); ++it)
-                    (*it)->updateCondition();
+                for (EffectContainer* container : this->effectContainers_)
+                    container->updateCondition();
             }
         }
@@ -198,7 +198,7 @@
             this->getShip()->attach(defEngineSndBoost_);
 
-        for (std::vector<EffectContainer*>::const_iterator it = this->effectContainers_.begin(); it != this->effectContainers_.end(); ++it)
-            for (std::vector<WorldEntity*>::const_iterator it2 = (*it)->getEffectsBegin(); it2 != (*it)->getEffectsEnd(); ++it2)
-                this->getShip()->attach(*it2);
+        for (EffectContainer* container : this->effectContainers_)
+            for (std::vector<WorldEntity*>::const_iterator it = container->getEffectsBegin(); it != container->getEffectsEnd(); ++it)
+                this->getShip()->attach(*it);
     }
 
Index: code/branches/cpp11_v2/src/orxonox/overlays/OverlayGroup.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/overlays/OverlayGroup.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/overlays/OverlayGroup.cc	(revision 10919)
@@ -170,8 +170,8 @@
     /*static*/ void OverlayGroup::toggleVisibility(const std::string& name)
     {
-        for (ObjectList<OverlayGroup>::iterator it = ObjectList<OverlayGroup>::begin(); it; ++it)
-        {
-            if ((*it)->getName() == name)
-                (*it)->setVisible(!((*it)->isVisible()));
+        for (OverlayGroup* group : ObjectList<OverlayGroup>())
+        {
+            if (group->getName() == name)
+                group->setVisible(!(group->isVisible()));
         }
     }
@@ -185,12 +185,12 @@
     /*static*/ void OverlayGroup::show(const std::string& name)
     {
-        for (ObjectList<OverlayGroup>::iterator it = ObjectList<OverlayGroup>::begin(); it; ++it)
-        {
-            if ((*it)->getName() == name)
+        for (OverlayGroup* group : ObjectList<OverlayGroup>())
+        {
+            if (group->getName() == name)
             {
-                if((*it)->isVisible())
-                    (*it)->changedVisibility();
+                if(group->isVisible())
+                    group->changedVisibility();
                 else
-                    (*it)->setVisible(!((*it)->isVisible()));
+                    group->setVisible(!(group->isVisible()));
             }
         }
@@ -208,8 +208,8 @@
     /*static*/ void OverlayGroup::scaleGroup(const std::string& name, float scale)
     {
-        for (ObjectList<OverlayGroup>::iterator it = ObjectList<OverlayGroup>::begin(); it; ++it)
-        {
-            if ((*it)->getName() == name)
-                (*it)->scale(Vector2(scale, scale));
+        for (OverlayGroup* group : ObjectList<OverlayGroup>())
+        {
+            if (group->getName() == name)
+                group->scale(Vector2(scale, scale));
         }
     }
@@ -226,8 +226,8 @@
     /*static*/ void OverlayGroup::scrollGroup(const std::string& name, const Vector2& scroll)
     {
-        for (ObjectList<OverlayGroup>::iterator it = ObjectList<OverlayGroup>::begin(); it; ++it)
-        {
-            if ((*it)->getName() == name)
-                (*it)->scroll(scroll);
+        for (OverlayGroup* group : ObjectList<OverlayGroup>())
+        {
+            if (group->getName() == name)
+                group->scroll(scroll);
         }
     }
Index: code/branches/cpp11_v2/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/sound/SoundManager.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/sound/SoundManager.cc	(revision 10919)
@@ -294,14 +294,14 @@
         {
         case SoundType::All:
-            for (ObjectList<BaseSound>::iterator it = ObjectList<BaseSound>::begin(); it != ObjectList<BaseSound>::end(); ++it)
-                (*it)->updateVolume();
+            for (BaseSound* sound : ObjectList<BaseSound>())
+                sound->updateVolume();
             break;
         case SoundType::Music:
-            for (ObjectList<AmbientSound>::iterator it = ObjectList<AmbientSound>::begin(); it != ObjectList<AmbientSound>::end(); ++it)
-                (*it)->updateVolume();
+            for (AmbientSound* sound : ObjectList<AmbientSound>())
+                sound->updateVolume();
             break;
         case SoundType::Effects:
-            for (ObjectList<WorldSound>::iterator it = ObjectList<WorldSound>::begin(); it != ObjectList<WorldSound>::end(); ++it)
-                (*it)->updateVolume();
+            for (WorldSound* sound : ObjectList<WorldSound>())
+                sound->updateVolume();
             break;
         default:
Index: code/branches/cpp11_v2/src/orxonox/sound/WorldAmbientSound.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/sound/WorldAmbientSound.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/sound/WorldAmbientSound.cc	(revision 10919)
@@ -114,8 +114,7 @@
 
         //HACK: Assuption - there is only one WorldAmbientSound in a level and only one level is used.
-        for (ObjectList<WorldAmbientSound>::iterator it = ObjectList<WorldAmbientSound>::begin();
-             it != ObjectList<WorldAmbientSound>::end(); ++it)
+        for (WorldAmbientSound* sound : ObjectList<WorldAmbientSound>())
         {
-            while(it->ambientSound_->setAmbientSource(WorldAmbientSound::soundList_[WorldAmbientSound::soundNumber_]) == false){
+            while(sound->ambientSound_->setAmbientSource(WorldAmbientSound::soundList_[WorldAmbientSound::soundNumber_]) == false){
                 WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size();
             }
Index: code/branches/cpp11_v2/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/weaponsystem/WeaponPack.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/weaponsystem/WeaponPack.cc	(revision 10919)
@@ -153,6 +153,6 @@
     void WeaponPack::notifyWeapons()
     {
-        for (std::vector<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
-            (*it)->setWeaponPack(this);
+        for (Weapon* weapon : this->weapons_)
+            weapon->setWeaponPack(this);
     }
 }
Index: code/branches/cpp11_v2/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/ControllableEntity.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/ControllableEntity.cc	(revision 10919)
@@ -108,6 +108,6 @@
                 this->camera_->destroy();
 
-            for (std::list<StrongPtr<CameraPosition>>::const_iterator it = this->cameraPositions_.begin(); it != this->cameraPositions_.end(); ++it)
-                (*it)->destroy();
+            for (CameraPosition* cameraPosition : this->cameraPositions_)
+                cameraPosition->destroy();
 
             if (this->getScene()->getSceneManager())
Index: code/branches/cpp11_v2/src/orxonox/worldentities/EffectContainer.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/EffectContainer.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/EffectContainer.cc	(revision 10919)
@@ -103,7 +103,7 @@
             bool result = (bool)lua_toboolean(this->lua_->getInternalLuaState(), -1);
             lua_pop(this->lua_->getInternalLuaState(), 1);
-            for (std::vector<WorldEntity*>::const_iterator it = this->effects_.begin(); it != this->effects_.end(); ++it)
+            for (WorldEntity* effect : this->effects_)
             {
-                (*it)->setMainState(result);
+                effect->setMainState(result);
             }
         }
Index: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/ModularSpaceShip.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/ModularSpaceShip.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/ModularSpaceShip.cc	(revision 10919)
@@ -174,9 +174,9 @@
     void ModularSpaceShip::killShipPartStatic(std::string name)
     {
-        for (std::map<StaticEntity*, ShipPart*>::const_iterator it = ModularSpaceShip::partMap_s->begin(); it != ModularSpaceShip::partMap_s->end(); ++it)
-        {
-            if (it->second->getName() == name)
-            {
-                it->second->death();
+        for (const auto& mapEntry : *ModularSpaceShip::partMap_s)
+        {
+            if (mapEntry.second->getName() == name)
+            {
+                mapEntry.second->death();
                 return;
             }
@@ -193,9 +193,9 @@
     void ModularSpaceShip::killShipPart(std::string name)
     {
-        for (std::map<StaticEntity*, ShipPart*>::const_iterator it = ModularSpaceShip::partMap_.begin(); it != ModularSpaceShip::partMap_.end(); ++it)
-        {
-            if (it->second->getName() == name)
-            {
-                it->second->death();
+        for (const auto& mapEntry : ModularSpaceShip::partMap_)
+        {
+            if (mapEntry.second->getName() == name)
+            {
+                mapEntry.second->death();
                 return;
             }
Index: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10919)
@@ -574,10 +574,8 @@
     bool Pawn::hasSlaves()
     {
-        for (ObjectList<FormationController>::iterator it =
-             ObjectList<FormationController>::begin();
-             it != ObjectList<FormationController>::end(); ++it )
+        for (FormationController* controller : ObjectList<FormationController>())
         {
             // checks if the pawn's controller has a slave
-            if (this->hasHumanController() && it->getMaster() == this->getPlayer()->getController())
+            if (this->hasHumanController() && controller->getMaster() == this->getPlayer()->getController())
                 return true;
         }
@@ -587,10 +585,8 @@
     // A function that returns a slave of the pawn's controller
     Controller* Pawn::getSlave(){
-        for (ObjectList<FormationController>::iterator it =
-                ObjectList<FormationController>::begin();
-                it != ObjectList<FormationController>::end(); ++it )
-        {
-            if (this->hasHumanController() && it->getMaster() == this->getPlayer()->getController())
-                return it->getController();
+        for (FormationController* controller : ObjectList<FormationController>())
+        {
+            if (this->hasHumanController() && controller->getMaster() == this->getPlayer()->getController())
+                return controller->getController();
         }
         return nullptr;
Index: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc	(revision 10918)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc	(revision 10919)
@@ -92,6 +92,6 @@
 
         // Call this so bots stop shooting at the base after they converted it
-        for (ObjectList<ArtificialController>::iterator it = ObjectList<ArtificialController>::begin(); it != ObjectList<ArtificialController>::end(); ++it)
-            it->abandonTarget(this);
+        for (ArtificialController* controller : ObjectList<ArtificialController>())
+            controller->abandonTarget(this);
     }
 }
