Index: code/branches/cpp11_v2/src/modules/docking/Dock.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/docking/Dock.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/docking/Dock.cc	(revision 10821)
@@ -327,8 +327,8 @@
     const DockingEffect* Dock::getEffect(unsigned int i) const
     {
-        for (std::list<DockingEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        for (const auto & elem : this->effects_)
         {
             if(i == 0)
-               return *effect;
+               return elem;
             i--;
         }
@@ -346,8 +346,8 @@
     const DockingAnimation* Dock::getAnimation(unsigned int i) const
     {
-        for (std::list<DockingAnimation*>::const_iterator animation = this->animations_.begin(); animation != this->animations_.end(); ++animation)
+        for (const auto & elem : this->animations_)
         {
             if(i == 0)
-               return *animation;
+               return elem;
             i--;
         }
Index: code/branches/cpp11_v2/src/modules/docking/DockingAnimation.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/docking/DockingAnimation.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/docking/DockingAnimation.cc	(revision 10821)
@@ -57,10 +57,10 @@
         bool check = true;
 
-        for (std::list<DockingAnimation*>::iterator animation = animations.begin(); animation != animations.end(); animation++)
+        for (auto & animations_animation : animations)
         {
             if(dock)
-                check &= (*animation)->docking(player);
+                check &= (animations_animation)->docking(player);
             else
-                check &= (*animation)->release(player);
+                check &= (animations_animation)->release(player);
         }
 
Index: code/branches/cpp11_v2/src/modules/docking/DockingEffect.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/docking/DockingEffect.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/docking/DockingEffect.cc	(revision 10821)
@@ -53,10 +53,10 @@
         bool check = true;
 
-        for (std::list<DockingEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
+        for (auto & effects_effect : effects)
         {
             if (dock)
-                check &= (*effect)->docking(player);
+                check &= (effects_effect)->docking(player);
             else
-                check &= (*effect)->release(player);
+                check &= (effects_effect)->release(player);
         }
 
Index: code/branches/cpp11_v2/src/modules/gametypes/RaceCheckPoint.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/gametypes/RaceCheckPoint.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/gametypes/RaceCheckPoint.cc	(revision 10821)
@@ -146,11 +146,11 @@
     {
         Vector3 checkpoints(-1,-1,-1); int count=0;
-        for (std::set<int>::iterator it= nextCheckpoints_.begin();it!=nextCheckpoints_.end(); it++ )
+        for (const auto & elem : nextCheckpoints_)
         {
             switch (count)
             {
-                case 0: checkpoints.x = static_cast<Ogre::Real>(*it); break;
-                case 1: checkpoints.y = static_cast<Ogre::Real>(*it); break;
-                case 2: checkpoints.z = static_cast<Ogre::Real>(*it); break;
+                case 0: checkpoints.x = static_cast<Ogre::Real>(elem); break;
+                case 1: checkpoints.y = static_cast<Ogre::Real>(elem); break;
+                case 2: checkpoints.z = static_cast<Ogre::Real>(elem); break;
             }
             ++count;
Index: code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc	(revision 10821)
@@ -154,16 +154,16 @@
     {
         std::map<RaceCheckPoint*, int> zaehler; // counts how many times the checkpoint was reached (for simulation)
-        for (unsigned int i = 0; i < allCheckpoints.size(); i++)
-        {
-            zaehler.insert(std::pair<RaceCheckPoint*, int>(allCheckpoints[i],0));
+        for (auto & allCheckpoint : allCheckpoints)
+        {
+            zaehler.insert(std::pair<RaceCheckPoint*, int>(allCheckpoint,0));
         }
         int maxWays = rekSimulationCheckpointsReached(currentCheckpoint, zaehler);
 
         std::vector<RaceCheckPoint*> returnVec;
-        for (std::map<RaceCheckPoint*, int>::iterator iter = zaehler.begin(); iter != zaehler.end(); iter++)
-        {
-            if (iter->second == maxWays)
-            {
-                returnVec.push_back(iter->first);
+        for (auto & elem : zaehler)
+        {
+            if (elem.second == maxWays)
+            {
+                returnVec.push_back(elem.first);
             }
         }
@@ -226,7 +226,7 @@
 
         // find the next checkpoint with the minimal distance
-        for (std::set<int>::iterator it = raceCheckpoint->getNextCheckpoints().begin(); it != raceCheckpoint->getNextCheckpoints().end(); ++it)
-        {
-            RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(*it);
+        for (auto elem : raceCheckpoint->getNextCheckpoints())
+        {
+            RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(elem);
             float distance = recCalculateDistance(nextRaceCheckPoint, this->getControllableEntity()->getPosition());
 
@@ -289,7 +289,7 @@
     RaceCheckPoint* SpaceRaceController::findCheckpoint(int index) const
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-            if (this->checkpoints_[i]->getCheckpointIndex() == index)
-                return this->checkpoints_[i];
+        for (auto & elem : this->checkpoints_)
+            if (elem->getCheckpointIndex() == index)
+                return elem;
         return nullptr;
     }
@@ -414,9 +414,9 @@
         btScalar radiusObject;
 
-        for (std::vector<StaticEntity*>::const_iterator it = allObjects.begin(); it != allObjects.end(); ++it)
-        {
-            for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape) != nullptr; everyShape++)
-            {
-                btCollisionShape* currentShape = (*it)->getAttachedCollisionShape(everyShape)->getCollisionShape();
+        for (const auto & allObject : allObjects)
+        {
+            for (int everyShape=0; (allObject)->getAttachedCollisionShape(everyShape) != nullptr; everyShape++)
+            {
+                btCollisionShape* currentShape = (allObject)->getAttachedCollisionShape(everyShape)->getCollisionShape();
                 if(currentShape == nullptr)
                 continue;
Index: code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceManager.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceManager.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceManager.cc	(revision 10821)
@@ -54,6 +54,6 @@
     SpaceRaceManager::~SpaceRaceManager()
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-        this->checkpoints_[i]->destroy();
+        for (auto & elem : this->checkpoints_)
+        elem->destroy();
     }
 
@@ -77,11 +77,11 @@
         }
 
-        for ( std::map< PlayerInfo*, Player>::iterator it = players_.begin(); it != players_.end(); ++it)
+        for (auto & elem : players_)
         {
 
-            for (size_t i = 0; i < this->checkpoints_.size(); ++i)
+            for (auto & _i : this->checkpoints_)
             {
-                if (this->checkpoints_[i]->playerWasHere(it->first)){
-                this->checkpointReached(this->checkpoints_[i], it->first /*this->checkpoints_[i]->getPlayer()*/);
+                if (_i->playerWasHere(elem.first)){
+                this->checkpointReached(_i, elem.first /*this->checkpoints_[i]->getPlayer()*/);
                 }
             }
@@ -113,7 +113,7 @@
     RaceCheckPoint* SpaceRaceManager::findCheckpoint(int index) const
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-        if (this->checkpoints_[i]->getCheckpointIndex() == index)
-        return this->checkpoints_[i];
+        for (auto & elem : this->checkpoints_)
+        if (elem->getCheckpointIndex() == index)
+        return elem;
         return nullptr;
     }
@@ -125,6 +125,6 @@
             // the player already visited an old checkpoint; see which checkpoints are possible now
             const std::set<int>& possibleCheckpoints = oldCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = possibleCheckpoints.begin(); it != possibleCheckpoints.end(); ++it)
-            if (this->findCheckpoint(*it) == newCheckpoint)
+            for (const auto & possibleCheckpoint : possibleCheckpoints)
+            if (this->findCheckpoint(possibleCheckpoint) == newCheckpoint)
             return true;
             return false;
@@ -179,6 +179,6 @@
         {
             const std::set<int>& oldVisible = oldCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = oldVisible.begin(); it != oldVisible.end(); ++it)
-            this->findCheckpoint(*it)->setRadarVisibility(false);
+            for (const auto & elem : oldVisible)
+            this->findCheckpoint(elem)->setRadarVisibility(false);
         }
 
@@ -188,6 +188,6 @@
 
             const std::set<int>& newVisible = newCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = newVisible.begin(); it != newVisible.end(); ++it)
-            this->findCheckpoint(*it)->setRadarVisibility(true);
+            for (const auto & elem : newVisible)
+            this->findCheckpoint(elem)->setRadarVisibility(true);
         }
     }
Index: code/branches/cpp11_v2/src/modules/jump/Jump.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/jump/Jump.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/jump/Jump.cc	(revision 10821)
@@ -633,10 +633,10 @@
 
 
-        for (int i = 0; i < numI; ++i)
+        for (auto & elem : matrix)
         {
             for (int j = 0; j < numJ; ++j)
             {
-                matrix[i][j].type = PLATFORM_EMPTY;
-                matrix[i][j].done = false;
+                elem[j].type = PLATFORM_EMPTY;
+                elem[j].done = false;
             }
         }
@@ -795,5 +795,5 @@
 
         // Fill matrix with selected platform types
-        for (int i = 0; i < numI; ++ i)
+        for (auto & elem : matrix)
         {
             for (int j = 0; j < numJ; ++ j)
@@ -801,11 +801,11 @@
                 if (rand()%3 == 0)
                 {
-                    matrix[i][j].type = platformtype1;
+                    elem[j].type = platformtype1;
                 }
                 else
                 {
-                    matrix[i][j].type = platformtype2;
+                    elem[j].type = platformtype2;
                 }
-                matrix[i][j].done = false;
+                elem[j].done = false;
             }
         }
Index: code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc	(revision 10821)
@@ -155,11 +155,11 @@
     {
         // first spawn human players to assign always the left bat to the player in singleplayer
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (auto & elem : this->players_)
+            if (elem.first->isHumanPlayer() && (elem.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(elem.first);
         // now spawn bots
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (!it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (auto & elem : this->players_)
+            if (!elem.first->isHumanPlayer() && (elem.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(elem.first);
     }
 
Index: code/branches/cpp11_v2/src/modules/notifications/NotificationManager.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/notifications/NotificationManager.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/notifications/NotificationManager.cc	(revision 10821)
@@ -69,6 +69,6 @@
     {
         // Destroys all Notifications.
-        for(std::multimap<std::time_t, Notification*>::iterator it = this->allNotificationsList_.begin(); it!= this->allNotificationsList_.end(); it++)
-            it->second->destroy();
+        for(auto & elem : this->allNotificationsList_)
+            elem.second->destroy();
         this->allNotificationsList_.clear();
 
@@ -152,10 +152,10 @@
         bool executed = false;
         // Clear all NotificationQueues that have the input sender as target.
-        for(std::map<const std::string, NotificationQueue*>::iterator it = this->queues_.begin(); it != this->queues_.end(); it++) // Iterate through all NotificationQueues.
-        {
-            const std::set<std::string>& set = it->second->getTargetsSet();
+        for(auto & elem : this->queues_) // Iterate through all NotificationQueues.
+        {
+            const std::set<std::string>& set = elem.second->getTargetsSet();
             // If either the sender is 'all', the NotificationQueue has as target all or the NotificationQueue has the input sender as a target.
             if(all || set.find(NotificationListener::ALL) != set.end() || set.find(sender) != set.end())
-                executed = it->second->tidy() || executed;
+                executed = elem.second->tidy() || executed;
         }
 
@@ -187,7 +187,7 @@
 
         // Insert the Notification in all NotificationQueues that have its sender as target.
-        for(std::map<const std::string, NotificationQueue*>::iterator it = this->queues_.begin(); it != this->queues_.end(); it++) // Iterate through all NotificationQueues.
-        {
-            const std::set<std::string>& set = it->second->getTargetsSet();
+        for(auto & elem : this->queues_) // Iterate through all NotificationQueues.
+        {
+            const std::set<std::string>& set = elem.second->getTargetsSet();
             bool bAll = set.find(NotificationListener::ALL) != set.end();
             // If either the Notification has as sender 'all', the NotificationQueue displays all Notifications or the NotificationQueue has the sender of the Notification as target.
@@ -195,6 +195,6 @@
             {
                 if(!bAll)
-                    this->notificationLists_[it->second->getName()]->insert(std::pair<std::time_t, Notification*>(time, notification)); // Insert the Notification in the notifications list of the current NotificationQueue.
-                it->second->update(notification, time); // Update the NotificationQueue.
+                    this->notificationLists_[elem.second->getName()]->insert(std::pair<std::time_t, Notification*>(time, notification)); // Insert the Notification in the notifications list of the current NotificationQueue.
+                elem.second->update(notification, time); // Update the NotificationQueue.
             }
         }
@@ -345,8 +345,8 @@
 
         // Iterate through all Notifications to determine whether any of them should belong to the newly registered NotificationQueue.
-        for(std::multimap<std::time_t, Notification*>::iterator it = this->allNotificationsList_.begin(); it != this->allNotificationsList_.end(); it++)
-        {
-            if(!bAll && set.find(it->second->getSender()) != set.end()) // Checks whether the listener has the sender of the current Notification as target.
-                map->insert(std::pair<std::time_t, Notification*>(it->first, it->second));
+        for(auto & elem : this->allNotificationsList_)
+        {
+            if(!bAll && set.find(elem.second->getSender()) != set.end()) // Checks whether the listener has the sender of the current Notification as target.
+                map->insert(std::pair<std::time_t, Notification*>(elem.first, elem.second));
         }
 
Index: code/branches/cpp11_v2/src/modules/notifications/NotificationQueue.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/notifications/NotificationQueue.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/notifications/NotificationQueue.cc	(revision 10821)
@@ -206,8 +206,8 @@
         {
             // Add all Notifications that have been created after this NotificationQueue was created.
-            for(std::multimap<std::time_t, Notification*>::iterator it = notifications->begin(); it != notifications->end(); it++)
+            for(auto & notification : *notifications)
             {
-                if(it->first >= this->creationTime_)
-                    this->push(it->second, it->first);
+                if(notification.first >= this->creationTime_)
+                    this->push(notification.second, notification.first);
             }
         }
@@ -336,6 +336,6 @@
         this->ordering_.clear();
         // Delete all NotificationContainers in the list.
-        for(std::vector<NotificationContainer*>::iterator it = this->notifications_.begin(); it != this->notifications_.end(); it++)
-            delete *it;
+        for(auto & elem : this->notifications_)
+            delete elem;
 
         this->notifications_.clear();
@@ -426,5 +426,5 @@
         bool first = true;
         // Iterate through the set of targets.
-        for(std::set<std::string>::const_iterator it = this->targets_.begin(); it != this->targets_.end(); it++)
+        for(const auto & elem : this->targets_)
         {
             if(!first)
@@ -432,5 +432,5 @@
             else
                 first = false;
-            stream << *it;
+            stream << elem;
         }
 
Index: code/branches/cpp11_v2/src/modules/objects/Attacher.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/Attacher.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/Attacher.cc	(revision 10821)
@@ -61,6 +61,6 @@
         SUPER(Attacher, changedActivity);
 
-        for (std::list<WorldEntity*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->setActive(this->isActive());
+        for (auto & elem : this->objects_)
+            (elem)->setActive(this->isActive());
     }
 
@@ -69,6 +69,6 @@
         SUPER(Attacher, changedVisibility);
 
-        for (std::list<WorldEntity*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->setVisible(this->isVisible());
+        for (auto & elem : this->objects_)
+            (elem)->setVisible(this->isVisible());
     }
 
@@ -83,8 +83,8 @@
     {
         unsigned int i = 0;
-        for (std::list<WorldEntity*>::const_iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
+        for (const auto & elem : this->objects_)
         {
             if (i == index)
-                return (*it);
+                return (elem);
 
             ++i;
Index: code/branches/cpp11_v2/src/modules/objects/Script.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/Script.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/Script.cc	(revision 10821)
@@ -196,7 +196,7 @@
             {
                 const std::map<unsigned int, PlayerInfo*> clients = PlayerManager::getInstance().getClients();
-                for(std::map<unsigned int, PlayerInfo*>::const_iterator it = clients.begin(); it != clients.end(); it++)
+                for(const auto & client : clients)
                 {
-                    callStaticNetworkFunction(&Script::executeHelper, it->first, this->getCode(), this->getMode(), this->getNeedsGraphics());
+                    callStaticNetworkFunction(&Script::executeHelper, client.first, this->getCode(), this->getMode(), this->getNeedsGraphics());
                     if(this->times_ != Script::INF) // Decrement the number of remaining executions.
                     {
Index: code/branches/cpp11_v2/src/modules/objects/SpaceBoundaries.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/SpaceBoundaries.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/SpaceBoundaries.cc	(revision 10821)
@@ -59,9 +59,9 @@
             this->pawnsIn_.clear();
 
-            for( std::vector<BillboardAdministration>::iterator current = this->billboards_.begin(); current != this->billboards_.end(); current++)
+            for(auto & elem : this->billboards_)
             {
-                if( current->billy != nullptr)
-                {
-                    delete current->billy;
+                if( elem.billy != nullptr)
+                {
+                    delete elem.billy;
                 }
             }
@@ -138,8 +138,8 @@
     void SpaceBoundaries::removeAllBillboards()
     {
-        for( std::vector<BillboardAdministration>::iterator current = this->billboards_.begin(); current != this->billboards_.end(); current++ )
-        {
-            current->usedYet = false;
-            current->billy->setVisible(false);
+        for(auto & elem : this->billboards_)
+        {
+            elem.usedYet = false;
+            elem.billy->setVisible(false);
         }
     }
@@ -208,7 +208,7 @@
         float distance;
         bool humanItem;
-        for( std::list<WeakPtr<Pawn>>::iterator current = pawnsIn_.begin(); current != pawnsIn_.end(); current++ )
-        {
-            Pawn* currentPawn = *current;
+        for(auto currentPawn : pawnsIn_)
+        {
+            
             if( currentPawn && currentPawn->getNode() ) 
             {
Index: code/branches/cpp11_v2/src/modules/objects/eventsystem/EventDispatcher.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/eventsystem/EventDispatcher.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/eventsystem/EventDispatcher.cc	(revision 10821)
@@ -45,6 +45,6 @@
     {
         if (this->isInitialized())
-            for (std::list<BaseObject*>::iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
-                (*it)->destroy();
+            for (auto & elem : this->targets_)
+                (elem)->destroy();
     }
 
@@ -61,6 +61,6 @@
     void EventDispatcher::processEvent(Event& event)
     {
-        for (std::list<BaseObject*>::iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
-            (*it)->processEvent(event);
+        for (auto & elem : this->targets_)
+            (elem)->processEvent(event);
     }
 
@@ -73,8 +73,8 @@
     {
         unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
+        for (const auto & elem : this->targets_)
         {
             if (i == index)
-                return (*it);
+                return (elem);
             ++i;
         }
Index: code/branches/cpp11_v2/src/modules/objects/eventsystem/EventFilter.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/eventsystem/EventFilter.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/eventsystem/EventFilter.cc	(revision 10821)
@@ -96,8 +96,8 @@
     {
         unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->sources_.begin(); it != this->sources_.end(); ++it)
+        for (const auto & elem : this->sources_)
         {
             if (i == index)
-                return (*it);
+                return (elem);
             ++i;
         }
@@ -113,8 +113,8 @@
     {
         unsigned int i = 0;
-        for (std::list<EventName*>::const_iterator it = this->names_.begin(); it != this->names_.end(); ++it)
+        for (const auto & elem : this->names_)
         {
             if (i == index)
-                return (*it);
+                return (elem);
             ++i;
         }
Index: code/branches/cpp11_v2/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 10821)
@@ -160,7 +160,7 @@
                 const std::set<WorldEntity*> attached = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(const auto & elem : attached)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if((elem)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(elem)->getName() == this->targetName_)
                     {
                         found = true;
Index: code/branches/cpp11_v2/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/triggers/DistanceTrigger.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/triggers/DistanceTrigger.cc	(revision 10821)
@@ -182,7 +182,7 @@
                 const std::set<WorldEntity*> attached = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(const auto & elem : attached)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if((elem)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(elem)->getName() == this->targetName_)
                     {
                         found = true;
Index: code/branches/cpp11_v2/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/triggers/MultiTrigger.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/triggers/MultiTrigger.cc	(revision 10821)
@@ -504,7 +504,7 @@
     bool MultiTrigger::checkAnd(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(auto trigger : this->children_)
+        {
+            
             if(trigger->isMultiTrigger())
             {
@@ -531,7 +531,7 @@
     bool MultiTrigger::checkOr(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(auto trigger : this->children_)
+        {
+            
             if(trigger->isMultiTrigger())
             {
@@ -559,7 +559,7 @@
     {
         bool triggered = false;
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(auto trigger : this->children_)
+        {
+            
             if(triggered)
             {
Index: code/branches/cpp11_v2/src/modules/objects/triggers/Trigger.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/objects/triggers/Trigger.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/objects/triggers/Trigger.cc	(revision 10821)
@@ -234,7 +234,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (!(*it)->isActive())
+        for (const auto & elem : this->children_)
+        {
+            if (!(elem)->isActive())
                 return false;
         }
@@ -252,7 +252,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if ((*it)->isActive())
+        for (const auto & elem : this->children_)
+        {
+            if ((elem)->isActive())
                 return true;
         }
@@ -270,9 +270,9 @@
     {
         bool test = false;
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (test && (*it)->isActive())
+        for (const auto & elem : this->children_)
+        {
+            if (test && (elem)->isActive())
                 return false;
-            if ((*it)->isActive())
+            if ((elem)->isActive())
                 test = true;
         }
Index: code/branches/cpp11_v2/src/modules/overlays/hud/ChatOverlay.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/overlays/hud/ChatOverlay.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/overlays/hud/ChatOverlay.cc	(revision 10821)
@@ -58,6 +58,6 @@
     ChatOverlay::~ChatOverlay()
     {
-        for (std::set<Timer*>::iterator it = this->timers_.begin(); it != this->timers_.end(); ++it)
-            delete (*it);
+        for (const auto & elem : this->timers_)
+            delete (elem);
     }
 
@@ -92,7 +92,7 @@
         this->text_->setCaption("");
 
-        for (std::list<Ogre::DisplayString>::iterator it = this->messages_.begin(); it != this->messages_.end(); ++it)
+        for (auto & elem : this->messages_)
         {
-            this->text_->setCaption(this->text_->getCaption() + "\n" + (*it));
+            this->text_->setCaption(this->text_->getCaption() + "\n" + (elem));
         }
     }
Index: code/branches/cpp11_v2/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/overlays/hud/HUDNavigation.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/overlays/hud/HUDNavigation.cc	(revision 10821)
@@ -131,8 +131,8 @@
         }
         this->fontName_ = font;
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it != this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.text_ != nullptr)
-                it->second.text_->setFontName(this->fontName_);
+        for (auto & elem : this->activeObjectList_)
+        {
+            if (elem.second.text_ != nullptr)
+                elem.second.text_->setFontName(this->fontName_);
         }
     }
@@ -151,8 +151,8 @@
         }
         this->textSize_ = size;
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it!=this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.text_)
-                it->second.text_->setCharHeight(size);
+        for (auto & elem : this->activeObjectList_)
+        {
+            if (elem.second.text_)
+                elem.second.text_->setCharHeight(size);
         }
     }
@@ -186,6 +186,6 @@
         const Matrix4& camTransform = cam->getOgreCamera()->getProjectionMatrix() * cam->getOgreCamera()->getViewMatrix();
 
-        for (std::list<std::pair<RadarViewable*, unsigned int>>::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++listIt)
-        listIt->second = (int)((listIt->first->getRVWorldPosition() - HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition()).length() + 0.5f);
+        for (auto & elem : this->sortedObjectList_)
+        elem.second = (int)((elem.first->getRVWorldPosition() - HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition()).length() + 0.5f);
 
         this->sortedObjectList_.sort(compareDistance);
@@ -531,16 +531,16 @@
         float yScale = this->getActualSize().y;
 
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it != this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.health_ != nullptr)
-                it->second.health_->setDimensions(this->healthMarkerSize_ * xScale, this->healthMarkerSize_ * yScale);
-            if (it->second.healthLevel_ != nullptr)
-                it->second.healthLevel_->setDimensions(this->healthLevelMarkerSize_ * xScale, this->healthLevelMarkerSize_ * yScale);
-            if (it->second.panel_ != nullptr)
-                it->second.panel_->setDimensions(this->navMarkerSize_ * xScale, this->navMarkerSize_ * yScale);
-            if (it->second.text_ != nullptr)
-                it->second.text_->setCharHeight(this->textSize_ * yScale);
-            if (it->second.target_ != nullptr)
-                it->second.target_->setDimensions(this->aimMarkerSize_ * xScale, this->aimMarkerSize_ * yScale);
+        for (auto & elem : this->activeObjectList_)
+        {
+            if (elem.second.health_ != nullptr)
+                elem.second.health_->setDimensions(this->healthMarkerSize_ * xScale, this->healthMarkerSize_ * yScale);
+            if (elem.second.healthLevel_ != nullptr)
+                elem.second.healthLevel_->setDimensions(this->healthLevelMarkerSize_ * xScale, this->healthLevelMarkerSize_ * yScale);
+            if (elem.second.panel_ != nullptr)
+                elem.second.panel_->setDimensions(this->navMarkerSize_ * xScale, this->navMarkerSize_ * yScale);
+            if (elem.second.text_ != nullptr)
+                elem.second.text_->setCharHeight(this->textSize_ * yScale);
+            if (elem.second.target_ != nullptr)
+                elem.second.target_->setDimensions(this->aimMarkerSize_ * xScale, this->aimMarkerSize_ * yScale);
         }
     }
@@ -670,8 +670,8 @@
     {
         const std::set<RadarViewable*>& respawnObjects = this->getOwner()->getScene()->getRadar()->getRadarObjects();
-        for (std::set<RadarViewable*>::const_iterator it = respawnObjects.begin(); it != respawnObjects.end(); ++it)
-        {
-            if (!(*it)->isHumanShip_)
-            this->addObject(*it);
+        for (const auto & respawnObject : respawnObjects)
+        {
+            if (!(respawnObject)->isHumanShip_)
+            this->addObject(respawnObject);
         }
     }
Index: code/branches/cpp11_v2/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/overlays/hud/HUDRadar.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/overlays/hud/HUDRadar.cc	(revision 10821)
@@ -92,8 +92,7 @@
             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->map3DBack_);
 
-            for (std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it = this->radarObjects_.begin();
-                it != this->radarObjects_.end(); ++it)
-            {
-                Ogre::OverlayManager::getSingleton().destroyOverlayElement(it->second);
+            for (auto & elem : this->radarObjects_)
+            {
+                Ogre::OverlayManager::getSingleton().destroyOverlayElement(elem.second);
             }
         }
Index: code/branches/cpp11_v2/src/modules/overlays/stats/Scoreboard.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/overlays/stats/Scoreboard.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/overlays/stats/Scoreboard.cc	(revision 10821)
@@ -60,6 +60,6 @@
         SUPER(Scoreboard, changedVisibility);
 
-        for (unsigned int i = 0; i < this->lines_.size(); ++i)
-            this->lines_[i]->changedVisibility();
+        for (auto & elem : this->lines_)
+            elem->changedVisibility();
     }
 
@@ -94,9 +94,9 @@
 
         unsigned int index = 0;
-        for (std::map<PlayerInfo*, Player>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
+        for (const auto & elem : playerList)
         {
-            this->lines_[index]->setPlayerName(multi_cast<std::string>(it->first->getName()));
-            this->lines_[index]->setScore(multi_cast<std::string>(it->second.frags_));
-            this->lines_[index]->setDeaths(multi_cast<std::string>(it->second.killed_));
+            this->lines_[index]->setPlayerName(multi_cast<std::string>(elem.first->getName()));
+            this->lines_[index]->setScore(multi_cast<std::string>(elem.second.frags_));
+            this->lines_[index]->setDeaths(multi_cast<std::string>(elem.second.killed_));
             index++;
         }
Index: code/branches/cpp11_v2/src/modules/pickup/PickupCollection.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/pickup/PickupCollection.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/pickup/PickupCollection.cc	(revision 10821)
@@ -68,8 +68,8 @@
     {
         // Destroy all Pickupables constructing this PickupCollection.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            (*it)->wasRemovedFromCollection();
-            (*it)->destroy();
+        for(auto & elem : this->pickups_)
+        {
+            (elem)->wasRemovedFromCollection();
+            (elem)->destroy();
         }
         this->pickups_.clear();
@@ -99,6 +99,6 @@
         this->processingUsed_ = true;
         // Change used for all Pickupables this PickupCollection consists of.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-            (*it)->setUsed(this->isUsed());
+        for(auto & elem : this->pickups_)
+            (elem)->setUsed(this->isUsed());
 
         this->processingUsed_ = false;
@@ -119,9 +119,9 @@
         size_t numPickupsEnabled = 0;
         size_t numPickupsInUse = 0;
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if ((*it)->isEnabled())
+        for(auto & elem : this->pickups_)
+        {
+            if ((elem)->isEnabled())
                 ++numPickupsEnabled;
-            if ((*it)->isUsed())
+            if ((elem)->isUsed())
                 ++numPickupsInUse;
         }
@@ -146,10 +146,10 @@
 
         // Change the PickupCarrier for all Pickupables this PickupCollection consists of.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
+        for(auto & elem : this->pickups_)
         {
             if(this->getCarrier() == nullptr)
-                (*it)->setCarrier(nullptr);
+                (elem)->setCarrier(nullptr);
             else
-                (*it)->setCarrier(this->getCarrier()->getTarget(*it));
+                (elem)->setCarrier(this->getCarrier()->getTarget(elem));
         }
     }
@@ -186,7 +186,7 @@
         // If at least all the enabled pickups of this PickupCollection are no longer picked up.
         bool isOnePickupEnabledAndPickedUp = false;
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if ((*it)->isEnabled() && (*it)->isPickedUp())
+        for(auto & elem : this->pickups_)
+        {
+            if ((elem)->isEnabled() && (elem)->isPickedUp())
             {
                 isOnePickupEnabledAndPickedUp = true;
@@ -208,7 +208,7 @@
     bool PickupCollection::isTarget(const PickupCarrier* carrier) const
     {
-        for(std::list<CollectiblePickup*>::const_iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if(!carrier->isTarget(*it))
+        for(const auto & elem : this->pickups_)
+        {
+            if(!carrier->isTarget(elem))
                 return false;
         }
Index: code/branches/cpp11_v2/src/modules/pickup/PickupManager.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/pickup/PickupManager.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/pickup/PickupManager.cc	(revision 10821)
@@ -91,6 +91,6 @@
 
         // Destroying all the PickupInventoryContainers that are still there.
-        for(std::map<uint32_t, PickupInventoryContainer*>::iterator it = this->pickupInventoryContainers_.begin(); it != this->pickupInventoryContainers_.end(); it++)
-            delete it->second;
+        for(auto & elem : this->pickupInventoryContainers_)
+            delete elem.second;
         this->pickupInventoryContainers_.clear();
 
Index: code/branches/cpp11_v2/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/pickup/items/MetaPickup.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/pickup/items/MetaPickup.cc	(revision 10821)
@@ -118,7 +118,7 @@
                 std::set<Pickupable*> pickups = carrier->getPickups();
                 // Iterate over all Pickupables of the PickupCarrier.
-                for(std::set<Pickupable*>::iterator it = pickups.begin(); it != pickups.end(); it++)
+                for(auto pickup : pickups)
                 {
-                    Pickupable* pickup = (*it);
+                    
                     if(pickup == nullptr || pickup == this)
                         continue;
Index: code/branches/cpp11_v2/src/modules/pong/Pong.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/pong/Pong.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/pong/Pong.cc	(revision 10821)
@@ -145,10 +145,10 @@
 
             // If one of the bats is missing, create it. Apply the template for the bats as specified in the centerpoint.
-            for (size_t i = 0; i < 2; ++i)
+            for (auto & elem : this->bat_)
             {
-                if (this->bat_[i] == nullptr)
+                if (elem == nullptr)
                 {
-                    this->bat_[i] = new PongBat(this->center_->getContext());
-                    this->bat_[i]->addTemplate(this->center_->getBattemplate());
+                    elem = new PongBat(this->center_->getContext());
+                    elem->addTemplate(this->center_->getBattemplate());
                 }
             }
@@ -211,11 +211,11 @@
     {
         // first spawn human players to assign always the left bat to the player in singleplayer
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (auto & elem : this->players_)
+            if (elem.first->isHumanPlayer() && (elem.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(elem.first);
         // now spawn bots
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (!it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (auto & elem : this->players_)
+            if (!elem.first->isHumanPlayer() && (elem.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(elem.first);
     }
 
Index: code/branches/cpp11_v2/src/modules/pong/PongAI.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/pong/PongAI.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/pong/PongAI.cc	(revision 10821)
@@ -77,6 +77,6 @@
     PongAI::~PongAI()
     {
-        for (std::list<std::pair<Timer*, char>>::iterator it = this->reactionTimers_.begin(); it != this->reactionTimers_.end(); ++it)
-            it->first->destroy();
+        for (auto & elem : this->reactionTimers_)
+            elem.first->destroy();
     }
 
Index: code/branches/cpp11_v2/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/GlobalQuest.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/GlobalQuest.cc	(revision 10821)
@@ -94,6 +94,6 @@
 
         // Iterate through all players possessing this Quest.
-        for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-            QuestEffect::invokeEffects(*it, this->getFailEffectList());
+        for(const auto & elem : players_)
+            QuestEffect::invokeEffects(elem, this->getFailEffectList());
 
         return true;
@@ -119,6 +119,6 @@
 
         // Iterate through all players possessing the Quest.
-        for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-            QuestEffect::invokeEffects(*it, this->getCompleteEffectList());
+        for(const auto & elem : players_)
+            QuestEffect::invokeEffects(elem, this->getCompleteEffectList());
 
         Quest::complete(player);
@@ -242,8 +242,8 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->rewards_.begin(); effect != this->rewards_.end(); ++effect)
+        for (const auto & elem : this->rewards_)
         {
             if(i == 0)
-               return *effect;
+               return elem;
 
             i--;
Index: code/branches/cpp11_v2/src/modules/questsystem/Quest.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/Quest.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/Quest.cc	(revision 10821)
@@ -190,8 +190,8 @@
 
         // Iterate through all subquests.
-        for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest)
+        for (const auto & elem : this->subQuests_)
         {
             if(i == 0) // We're counting down...
-               return *subQuest;
+               return elem;
 
             i--;
@@ -214,8 +214,8 @@
 
         // Iterate through all QuestHints.
-        for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint)
+        for (const auto & elem : this->hints_)
         {
             if(i == 0) // We're counting down...
-               return *hint;
+               return elem;
 
             i--;
@@ -237,8 +237,8 @@
 
         // Iterate through all fail QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect)
+        for (const auto & elem : this->failEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return elem;
 
             i--;
@@ -260,8 +260,8 @@
 
         // Iterate through all complete QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect)
+        for (const auto & elem : this->completeEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return elem;
 
             i--;
Index: code/branches/cpp11_v2/src/modules/questsystem/QuestEffect.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/QuestEffect.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/QuestEffect.cc	(revision 10821)
@@ -74,6 +74,6 @@
         orxout(verbose, context::quests) << "Invoking QuestEffects on player: " << player << " ."  << endl;
 
-        for (std::list<QuestEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
-            temp = temp && (*effect)->invoke(player);
+        for (auto & effects_effect : effects)
+            temp = temp && (effects_effect)->invoke(player);
 
         return temp;
Index: code/branches/cpp11_v2/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/QuestEffectBeacon.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/QuestEffectBeacon.cc	(revision 10821)
@@ -236,8 +236,8 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        for (const auto & elem : this->effects_)
         {
             if(i == 0)
-               return *effect;
+               return elem;
 
             i--;
Index: code/branches/cpp11_v2/src/modules/questsystem/QuestListener.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/QuestListener.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/QuestListener.cc	(revision 10821)
@@ -97,7 +97,7 @@
     /* static */ void QuestListener::advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status)
     {
-        for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) // Iterate through all QuestListeners
-        {
-            QuestListener* listener = *it;
+        for (auto listener : listeners) // Iterate through all QuestListeners
+        {
+            
             if(listener->getMode() == status || listener->getMode() == QuestListener::ALL) // Check whether the status change affects the give QuestListener.
                 listener->execute();
Index: code/branches/cpp11_v2/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/QuestManager.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/QuestManager.cc	(revision 10821)
@@ -235,7 +235,7 @@
     {
         int numQuests = 0;
-        for(std::map<std::string, Quest*>::iterator it = this->questMap_.begin(); it != this->questMap_.end(); it++)
-        {
-            if(it->second->getParentQuest() == nullptr && !it->second->isInactive(player))
+        for(auto & elem : this->questMap_)
+        {
+            if(elem.second->getParentQuest() == nullptr && !elem.second->isInactive(player))
                 numQuests++;
         }
@@ -255,8 +255,8 @@
     Quest* QuestManager::getRootQuest(PlayerInfo* player, int index)
     {
-        for(std::map<std::string, Quest*>::iterator it = this->questMap_.begin(); it != this->questMap_.end(); it++)
-        {
-            if(it->second->getParentQuest() == nullptr && !it->second->isInactive(player) && index-- == 0)
-                return it->second;
+        for(auto & elem : this->questMap_)
+        {
+            if(elem.second->getParentQuest() == nullptr && !elem.second->isInactive(player) && index-- == 0)
+                return elem.second;
         }
         return nullptr;
@@ -280,7 +280,7 @@
         std::list<Quest*> quests = quest->getSubQuestList();
         int numQuests = 0;
-        for(std::list<Quest*>::iterator it = quests.begin(); it != quests.end(); it++)
-        {
-            if(!(*it)->isInactive(player))
+        for(auto & quest : quests)
+        {
+            if(!(quest)->isInactive(player))
                 numQuests++;
         }
@@ -304,8 +304,8 @@
 
         std::list<Quest*> quests = quest->getSubQuestList();
-        for(std::list<Quest*>::iterator it = quests.begin(); it != quests.end(); it++)
-        {
-            if(!(*it)->isInactive(player) && index-- == 0)
-                return *it;
+        for(auto & quest : quests)
+        {
+            if(!(quest)->isInactive(player) && index-- == 0)
+                return quest;
         }
         return nullptr;
@@ -326,7 +326,7 @@
         std::list<QuestHint*> hints = quest->getHintsList();
         int numHints = 0;
-        for(std::list<QuestHint*>::iterator it = hints.begin(); it != hints.end(); it++)
-        {
-            if((*it)->isActive(player))
+        for(auto & hint : hints)
+        {
+            if((hint)->isActive(player))
                 numHints++;
         }
@@ -349,8 +349,8 @@
     {
         std::list<QuestHint*> hints = quest->getHintsList();
-        for(std::list<QuestHint*>::iterator it = hints.begin(); it != hints.end(); it++)
-        {
-            if((*it)->isActive(player) && index-- == 0)
-                return *it;
+        for(auto & hint : hints)
+        {
+            if((hint)->isActive(player) && index-- == 0)
+                return hint;
         }
         return nullptr;
Index: code/branches/cpp11_v2/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/questsystem/effects/AddReward.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/questsystem/effects/AddReward.cc	(revision 10821)
@@ -84,8 +84,8 @@
     {
         int i = index;
-        for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward)
+        for (const auto & elem : this->rewards_)
         {
             if(i == 0)
-               return *reward;
+               return elem;
             i--;
         }
@@ -106,6 +106,6 @@
 
         bool temp = true;
-        for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward )
-            temp = temp && (*reward)->reward(player);
+        for (auto & elem : this->rewards_)
+            temp = temp && (elem)->reward(player);
 
         orxout(verbose, context::quests) << "Rewardable successfully added to player." << player << " ." << endl;
Index: code/branches/cpp11_v2/src/modules/tetris/Tetris.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/tetris/Tetris.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/tetris/Tetris.cc	(revision 10821)
@@ -104,6 +104,6 @@
         }
 
-        for (std::list<StrongPtr<TetrisStone>>::iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
-            (*it)->destroy();
+        for (auto & elem : this->stones_)
+            (elem)->destroy();
         this->stones_.clear();
     }
@@ -341,7 +341,7 @@
     {
         // Spawn a human player.
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (auto & elem : this->players_)
+            if (elem.first->isHumanPlayer() && (elem.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(elem.first);
     }
     
@@ -502,8 +502,8 @@
         }
       // adjust height of stones above the deleted row //TODO: check if this could be a source of a bug.
-        for(std::list<StrongPtr<TetrisStone>>::iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
-        {
-            if(static_cast<unsigned int>(((*it)->getPosition().y - 5)/this->center_->getStoneSize()) > row)
-                (*it)->setPosition((*it)->getPosition()-Vector3(0,10,0));
+        for(auto & elem : this->stones_)
+        {
+            if(static_cast<unsigned int>(((elem)->getPosition().y - 5)/this->center_->getStoneSize()) > row)
+                (elem)->setPosition((elem)->getPosition()-Vector3(0,10,0));
         }
 
Index: code/branches/cpp11_v2/src/modules/tetris/TetrisBrick.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/tetris/TetrisBrick.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/tetris/TetrisBrick.cc	(revision 10821)
@@ -239,9 +239,9 @@
     {
         assert(this->tetris_);
-        for(unsigned int i = 0; i < this->brickStones_.size(); i++)
-        {
-            this->brickStones_[i]->detachFromParent();
-            this->brickStones_[i]->attachToParent(center);
-            this->brickStones_[i]->setPosition(this->getPosition()+this->tetris_->rotateVector(this->brickStones_[i]->getPosition(),this->rotationCount_ ));
+        for(auto & elem : this->brickStones_)
+        {
+            elem->detachFromParent();
+            elem->attachToParent(center);
+            elem->setPosition(this->getPosition()+this->tetris_->rotateVector(elem->getPosition(),this->rotationCount_ ));
         }
         this->brickStones_.clear();
Index: code/branches/cpp11_v2/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/towerdefense/TowerDefense.cc	(revision 10818)
+++ code/branches/cpp11_v2/src/modules/towerdefense/TowerDefense.cc	(revision 10821)
@@ -183,8 +183,8 @@
             en1->lookAt(waypoints_.at(1)->getPosition() + offset_);
 
-            for (unsigned int i = 0; i < waypoints_.size(); ++ i)
+            for (auto & elem : waypoints_)
             {
                 orxonox::WeakPtr<MovableEntity> waypoint = new MovableEntity(this->center_->getContext());
-                waypoint->setPosition(waypoints_.at(i)->getPosition() + offset_);
+                waypoint->setPosition(elem->getPosition() + offset_);
                 controller->addWaypoint(waypoint);
             }
