Index: code/trunk/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 11071)
@@ -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(PlayerInfo* questPlayer : players_)
+            QuestEffect::invokeEffects(questPlayer, 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(PlayerInfo* questPlayer : players_)
+            QuestEffect::invokeEffects(questPlayer, this->getCompleteEffectList());
 
         Quest::complete(player);
@@ -138,5 +138,5 @@
     bool GlobalQuest::isStartable(const PlayerInfo* player) const
     {
-        if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
+        if(!(this->getParentQuest() == nullptr || this->getParentQuest()->isActive(player)))
             return false;
 
@@ -177,5 +177,5 @@
         The player.
     */
-    QuestStatus::Value GlobalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus GlobalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
@@ -198,7 +198,7 @@
         The status to be set.
     @return
-        Returns false if player is NULL.
-    */
-    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+        Returns false if player is nullptr.
+    */
+    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
@@ -242,12 +242,12 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->rewards_.begin(); effect != this->rewards_.end(); ++effect)
+        for (QuestEffect* reward : this->rewards_)
         {
             if(i == 0)
-               return *effect;
+               return reward;
 
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
Index: code/trunk/src/modules/questsystem/GlobalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 11071)
@@ -93,21 +93,21 @@
             virtual ~GlobalQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a GlobalQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a GlobalQuest object through XML.
 
-            virtual bool fail(PlayerInfo* player); //!< Fails the Quest.
-            virtual bool complete(PlayerInfo* player); //!< Completes the Quest.
+            virtual bool fail(PlayerInfo* player) override; //!< Fails the Quest.
+            virtual bool complete(PlayerInfo* player) override; //!< Completes the Quest.
 
         protected:
-            virtual bool isStartable(const PlayerInfo* player) const; //!< Checks whether the Quest can be started.
-            virtual bool isFailable(const PlayerInfo* player) const; //!< Checks whether the Quest can be failed.
-            virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed.
+            virtual bool isStartable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be started.
+            virtual bool isFailable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be failed.
+            virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
 
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
             std::set<PlayerInfo*> players_; //!< The set of players which possess this Quest.
-            QuestStatus::Value status_; //!< The status of this Quest.
+            QuestStatus status_; //!< The status of this Quest.
             std::list<QuestEffect*> rewards_; //!< Reward QuestEffects only invoked on the player completing the Quest.
 
Index: code/trunk/src/modules/questsystem/LocalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 11071)
@@ -128,5 +128,5 @@
     bool LocalQuest::isStartable(const PlayerInfo* player) const
     {
-        if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
+        if(!(this->getParentQuest() == nullptr || this->getParentQuest()->isActive(player)))
             return false;
 
@@ -168,9 +168,9 @@
         Returns the status of the Quest for the input player.
     */
-    QuestStatus::Value LocalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus LocalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
 
-        std::map<const PlayerInfo*, QuestStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If there is a player in the map.
             return it->second;
@@ -188,7 +188,7 @@
         The status to be set.
     @return
-        Returns false if player is NULL.
-    */
-    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+        Returns false if player is nullptr.
+    */
+    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
Index: code/trunk/src/modules/questsystem/LocalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/LocalQuest.h	(revision 11071)
@@ -87,19 +87,19 @@
             virtual ~LocalQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a LocalQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a LocalQuest object through XML.
 
-            virtual bool fail(PlayerInfo* player); //!< Fails the Quest.
-            virtual bool complete(PlayerInfo* player); //!< Completes the Quest.
+            virtual bool fail(PlayerInfo* player) override; //!< Fails the Quest.
+            virtual bool complete(PlayerInfo* player) override; //!< Completes the Quest.
 
         protected:
-            virtual bool isStartable(const PlayerInfo* player) const; //!< Checks whether the Quest can be started.
-            virtual bool isFailable(const PlayerInfo* player) const; //!< Checks whether the Quest can be failed.
-            virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed.
+            virtual bool isStartable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be started.
+            virtual bool isFailable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be failed.
+            virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
-            std::map<const PlayerInfo*, QuestStatus::Value> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestStatus> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
 
     };
Index: code/trunk/src/modules/questsystem/Quest.cc
===================================================================
--- code/trunk/src/modules/questsystem/Quest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/Quest.cc	(revision 11071)
@@ -55,5 +55,5 @@
         RegisterObject(Quest);
 
-        this->parentQuest_ = NULL;
+        this->parentQuest_ = nullptr;
     }
 
@@ -183,5 +183,5 @@
         The index.
     @return
-        Returns a pointer to the sub-quest at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the sub-quest at the given index. nullptr if there is no element at the given index.
     */
     const Quest* Quest::getSubQuest(unsigned int index) const
@@ -190,13 +190,13 @@
 
         // Iterate through all subquests.
-        for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest)
+        for (Quest* quest : this->subQuests_)
         {
             if(i == 0) // We're counting down...
-               return *subQuest;
+               return quest;
 
             i--;
         }
 
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -207,5 +207,5 @@
         The index.
     @return
-        Returns a pointer to the QuestHint at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the QuestHint at the given index. nullptr if there is no element at the given index.
     */
     const QuestHint* Quest::getHint(unsigned int index) const
@@ -214,12 +214,12 @@
 
         // Iterate through all QuestHints.
-        for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint)
+        for (QuestHint* hint : this->hints_)
         {
             if(i == 0) // We're counting down...
-               return *hint;
+               return hint;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -230,5 +230,5 @@
         The index.
     @return
-        Returns a pointer to the fail QuestEffect at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the fail QuestEffect at the given index. nullptr if there is no element at the given index.
     */
     const QuestEffect* Quest::getFailEffect(unsigned int index) const
@@ -237,12 +237,12 @@
 
         // Iterate through all fail QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect)
+        for (QuestEffect* effect : this->failEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -253,5 +253,5 @@
         The index.
     @return
-        Returns a pointer to the complete QuestEffect at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the complete QuestEffect at the given index. nullptr if there is no element at the given index.
     */
     const QuestEffect* Quest::getCompleteEffect(unsigned int index) const
@@ -260,12 +260,12 @@
 
         // Iterate through all complete QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect)
+        for (QuestEffect* effect : this->completeEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -280,5 +280,5 @@
     bool Quest::isInactive(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return true;
         return this->getStatus(player) == QuestStatus::Inactive;
@@ -295,5 +295,5 @@
     bool Quest::isActive(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Active;
@@ -310,5 +310,5 @@
     bool Quest::isFailed(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Failed;
@@ -325,5 +325,5 @@
     bool Quest::isCompleted(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Completed;
Index: code/trunk/src/modules/questsystem/Quest.h
===================================================================
--- code/trunk/src/modules/questsystem/Quest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/Quest.h	(revision 11071)
@@ -51,14 +51,11 @@
     @ingroup Questsystem
     */
-    namespace QuestStatus
+    enum class QuestStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
-            Active, //!< The @ref orxonox::Quest "Quest" is active.
-            Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
-            Completed //!< The @ref orxonox::Quest "Quest" has been completed.
-        };
-    }
+        Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
+        Active, //!< The @ref orxonox::Quest "Quest" is active.
+        Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
+        Completed //!< The @ref orxonox::Quest "Quest" has been completed.
+    };
 
     /**
@@ -85,5 +82,5 @@
             virtual ~Quest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Quest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a Quest object through XML.
 
             /**
@@ -143,6 +140,6 @@
                 { return this->completeEffects_; }
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) = 0; //!< Changes the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) = 0; //!< Changes the status for a specific player.
 
         private:
Index: code/trunk/src/modules/questsystem/QuestDescription.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 11071)
@@ -119,5 +119,5 @@
         }
 
-        NotificationListener::sendNotification(message, QuestDescription::SENDER, notificationMessageType::info, notificationSendMode::network, player->getClientID());
+        NotificationListener::sendNotification(message, QuestDescription::SENDER, NotificationMessageType::info, NotificationSendMode::network, player->getClientID());
         return true;
     }
Index: code/trunk/src/modules/questsystem/QuestDescription.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestDescription.h	(revision 11071)
@@ -67,5 +67,5 @@
             virtual ~QuestDescription();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestDescription object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestDescription object through XML.
 
 // tolua_begin
Index: code/trunk/src/modules/questsystem/QuestEffect.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 11071)
@@ -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 (QuestEffect* effect : effects)
+            temp = temp && effect->invoke(player);
 
         return temp;
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 11071)
@@ -113,8 +113,8 @@
 
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // If the trigger is a PlayerTrigger.
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -126,5 +126,5 @@
             return false;
 
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(verbose, context::quests) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << endl;
@@ -236,12 +236,12 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        for (QuestEffect* effect : this->effects_)
         {
             if(i == 0)
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 11071)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestEffectBeaconStatus
+    enum class QuestEffectBeaconStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
-            Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
+        Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
+    };
 
     /**
@@ -96,6 +93,6 @@
             virtual ~QuestEffectBeacon();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML.
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestEffectBeacon object through XML.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             bool execute(bool bTriggered, BaseObject* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon.
@@ -125,5 +122,5 @@
             std::list<QuestEffect*> effects_; //!< The list of QuestEffects to be invoked on the executing player.
             int times_; //!< Number of times the beacon can be exectued.
-            QuestEffectBeaconStatus::Value status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
+            QuestEffectBeaconStatus status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
 
             bool setTimes(const int & n); //!< Set the number of times the QuestEffectBeacon can be executed.
Index: code/trunk/src/modules/questsystem/QuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestHint.cc	(revision 11071)
@@ -88,13 +88,13 @@
     bool QuestHint::isActive(const PlayerInfo* player) const
     {
-        if(player == NULL) // If the player is NULL, the Quest obviously can't be active.
+        if(player == nullptr) // If the player is nullptr, the Quest obviously can't be active.
             return false;
 
         // Find the player.
-        std::map<const PlayerInfo*, QuestHintStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestHintStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If the player is in the map.
-            return it->second;
+            return (it->second == QuestHintStatus::Active);
 
-        return QuestStatus::Inactive;
+        return false;
     }
 
Index: code/trunk/src/modules/questsystem/QuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestHint.h	(revision 11071)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestHintStatus
+    enum class QuestHintStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
-            Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
+        Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
+    };
 
     /**
@@ -85,5 +82,5 @@
             virtual ~QuestHint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestHint object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestHint object through XML.
 
             bool isActive(const PlayerInfo* player) const; //!< Returns true if the QuestHint is active for the input player.
@@ -101,5 +98,5 @@
         private:
             Quest* quest_; //!< The Quest the QuestHint belongs to.
-            std::map<const PlayerInfo*, QuestHintStatus::Value> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestHintStatus> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
 
     }; // tolua_export
Index: code/trunk/src/modules/questsystem/QuestItem.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestItem.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestItem.h	(revision 11071)
@@ -63,5 +63,5 @@
             virtual ~QuestItem();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestItem object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestItem object through XML.
 
             /**
Index: code/trunk/src/modules/questsystem/QuestListener.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestListener.cc	(revision 11071)
@@ -59,5 +59,5 @@
 
         this->mode_ = QuestListenerMode::All;
-        this->quest_ = NULL;
+        this->quest_ = nullptr;
     }
 
@@ -81,5 +81,5 @@
         XMLPortParam(QuestListener, "mode", setMode, getMode, xmlelement, mode);
 
-        if(this->quest_ != NULL)
+        if(this->quest_ != nullptr)
             this->quest_->addListener(this); // Adds the QuestListener to the Quests list of listeners.
 
@@ -97,7 +97,6 @@
     /* 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 (QuestListener* 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();
@@ -117,5 +116,5 @@
         this->quest_ = QuestManager::getInstance().findQuest(id); // Find the Quest corresponding to the given questId.
 
-        if(this->quest_ == NULL) // If there is no such Quest.
+        if(this->quest_ == nullptr) // If there is no such Quest.
         {
             ThrowException(Argument, "This is bad! The QuestListener has not found a Quest with a corresponding id..");
Index: code/trunk/src/modules/questsystem/QuestListener.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestListener.h	(revision 11071)
@@ -50,14 +50,11 @@
     @ingroup Questsystem
     */
-    namespace QuestListenerMode
+    enum class QuestListenerMode
     {
-        enum Value
-        {
-            All, //!< Listens to all events.
-            Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
-            Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
-            Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
-        };
-    }
+        All, //!< Listens to all events.
+        Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
+        Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
+        Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
+    };
 
     /**
@@ -90,5 +87,5 @@
             virtual ~QuestListener();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestListener object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestListener object through XML.
 
             static void advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status); //!< Makes all QuestListener in the list aware that a certain status change has occured.
@@ -103,5 +100,5 @@
 
         private:
-            QuestListenerMode::Value mode_; //!< The mode of the QuestListener.
+            QuestListenerMode mode_; //!< The mode of the QuestListener.
             Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to.
 
Index: code/trunk/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestManager.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/QuestManager.cc	(revision 11071)
@@ -93,7 +93,7 @@
     bool QuestManager::registerQuest(Quest* quest)
     {
-        if(quest == NULL)
-        {
-            orxout(internal_error, context::quests) << "Quest pointer is NULL." << endl;
+        if(quest == nullptr)
+        {
+            orxout(internal_error, context::quests) << "Quest pointer is nullptr." << endl;
             return false;
         }
@@ -135,7 +135,7 @@
     bool QuestManager::registerHint(QuestHint* hint)
     {
-        if(hint == NULL)
-        {
-            orxout(internal_error, context::quests) << "Quest pointer is NULL." << endl;
+        if(hint == nullptr)
+        {
+            orxout(internal_error, context::quests) << "Quest pointer is nullptr." << endl;
             return false;
         }
@@ -173,5 +173,5 @@
     @return
         Returns a pointer to the Quest with the input id.
-        Returns NULL if there is no Quest with the given questId.
+        Returns nullptr if there is no Quest with the given questId.
     @throws
         Throws an exception if the given questId is invalid.
@@ -188,5 +188,5 @@
         else
         {
-           quest = NULL;
+           quest = nullptr;
            orxout(internal_warning, context::quests) << "The quest with id {" << questId << "} is nowhere to be found." << endl;
         }
@@ -202,5 +202,5 @@
     @return
         Returns a pointer to the QuestHint with the input id.
-        Returns NULL if there is no QuestHint with the given hintId.
+        Returns nullptr if there is no QuestHint with the given hintId.
     @throws
         Throws an exception if the given hintId is invalid.
@@ -217,5 +217,5 @@
         else
         {
-           hint = NULL;
+           hint = nullptr;
            orxout(internal_warning, context::quests) << "The hint with id {" << hintId << "} is nowhere to be found." << endl;
         }
@@ -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() == NULL && !it->second->isInactive(player))
+        for(const auto& mapEntry : this->questMap_)
+        {
+            if(mapEntry.second->getParentQuest() == nullptr && !mapEntry.second->isInactive(player))
                 numQuests++;
         }
@@ -255,10 +255,10 @@
     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() == NULL && !it->second->isInactive(player) && index-- == 0)
-                return it->second;
-        }
-        return NULL;
+        for(const auto& mapEntry : this->questMap_)
+        {
+            if(mapEntry.second->getParentQuest() == nullptr && !mapEntry.second->isInactive(player) && index-- == 0)
+                return mapEntry.second;
+        }
+        return nullptr;
     }
 
@@ -275,12 +275,12 @@
     int QuestManager::getNumSubQuests(Quest* quest, PlayerInfo* player)
     {
-        if(quest == NULL)
+        if(quest == nullptr)
             return this->getNumRootQuests(player);
 
         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(Quest* subquest : quests)
+        {
+            if(!subquest->isInactive(player))
                 numQuests++;
         }
@@ -300,14 +300,14 @@
     Quest* QuestManager::getSubQuest(Quest* quest, PlayerInfo* player, int index)
     {
-        if(quest == NULL)
+        if(quest == nullptr)
             return this->getRootQuest(player, index);
 
         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;
-        }
-        return NULL;
+        for(Quest* subquest : quests)
+        {
+            if(!subquest->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(QuestHint* hint : hints)
+        {
+            if(hint->isActive(player))
                 numHints++;
         }
@@ -349,10 +349,10 @@
     {
         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;
-        }
-        return NULL;
+        for(QuestHint* hint : hints)
+        {
+            if(hint->isActive(player) && index-- == 0)
+                return hint;
+        }
+        return nullptr;
     }
 
@@ -367,5 +367,5 @@
     Quest* QuestManager::getParentQuest(Quest* quest)
     {
-        OrxAssert(quest, "The input Quest is NULL.");
+        OrxAssert(quest, "The input Quest is nullptr.");
         return quest->getParentQuest();
     }
@@ -381,5 +381,5 @@
     QuestDescription* QuestManager::getDescription(Quest* item)
     {
-        OrxAssert(item, "The input Quest is NULL.");
+        OrxAssert(item, "The input Quest is nullptr.");
         return item->getDescription();
     }
@@ -395,5 +395,5 @@
     QuestDescription* QuestManager::getDescription(QuestHint* item)
     {
-        OrxAssert(item, "The input QuestHint is NULL.");
+        OrxAssert(item, "The input QuestHint is nullptr.");
         return item->getDescription();
     }
@@ -409,5 +409,5 @@
     const std::string QuestManager::getId(Quest* item) const
     {
-        OrxAssert(item, "The input Quest is NULL.");
+        OrxAssert(item, "The input Quest is nullptr.");
         return item->getId();
     }
@@ -423,5 +423,5 @@
     const std::string QuestManager::getId(QuestHint* item) const
     {
-        OrxAssert(item, "The input QuestHint is NULL.");
+        OrxAssert(item, "The input QuestHint is nullptr.");
         return item->getId();
     }
@@ -440,8 +440,8 @@
     {
         PlayerInfo* player = GUIManager::getInstance().getPlayer(guiName);
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(internal_error, context::quests) << "GUIOverlay with name '" << guiName << "' has no player." << endl;
-            return NULL;
+            return nullptr;
         }
 
Index: code/trunk/src/modules/questsystem/effects/AddQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 11071)
@@ -90,5 +90,5 @@
         {
             Quest* quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->start(player))
+            if(quest == nullptr || !quest->start(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/AddQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
         virtual ~AddQuest();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuest object through XML.
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddQuest object through XML.
 
-        virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+        virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 11071)
@@ -113,5 +113,5 @@
         {
             QuestHint* hint = QuestManager::getInstance().findHint(this->hintId_);
-            if(hint == NULL || !hint->setActive(player))
+            if(hint == nullptr || !hint->setActive(player))
                 return false;
         }
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 11071)
@@ -64,7 +64,7 @@
             virtual ~AddQuestHint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuestHint object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddQuestHint object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
         private:
Index: code/trunk/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 11071)
@@ -84,11 +84,11 @@
     {
         int i = index;
-        for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward)
+        for (Rewardable* reward : this->rewards_)
         {
             if(i == 0)
-               return *reward;
+               return reward;
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -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 (Rewardable* reward : this->rewards_)
+            temp = temp && reward->reward(player);
 
         orxout(verbose, context::quests) << "Rewardable successfully added to player." << player << " ." << endl;
Index: code/trunk/src/modules/questsystem/effects/AddReward.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 11071)
@@ -68,7 +68,7 @@
             virtual ~AddReward();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddReward object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddReward object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
         private:
Index: code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 11071)
@@ -59,5 +59,5 @@
             virtual ~ChangeQuestStatus();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a ChangeQuestStatus object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a ChangeQuestStatus object through XML.
 
             virtual bool invoke(PlayerInfo* player) = 0; //!< Invokes the QuestEffect.
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 11071)
@@ -92,5 +92,5 @@
         {
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->complete(player))
+            if(quest == nullptr || !quest->complete(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
             virtual ~CompleteQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CompleteQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a CompleteQuest object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
Index: code/trunk/src/modules/questsystem/effects/FailQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 11071)
@@ -91,5 +91,5 @@
         {
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->fail(player))
+            if(quest == nullptr || !quest->fail(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/FailQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 10624)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
             virtual ~FailQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a FailQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a FailQuest object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
