Index: code/branches/presentation3/src/modules/questsystem/AddQuest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/AddQuest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/AddQuest.cc	(revision 6945)
@@ -68,5 +68,5 @@
         SUPER(AddQuest, XMLPort, xmlelement, mode);
 
-        COUT(3) << "New AddQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+        COUT(4) << "New AddQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
     }
 
@@ -87,5 +87,5 @@
         }
 
-        COUT(3) << "AddQuest on player: " << player << " ." << std::endl;
+        COUT(5) << "AddQuest on player: " << player << " ." << std::endl;
 
         try
@@ -103,5 +103,5 @@
         }
 
-        COUT(3) << "Quest {" << this->getQuestId() << "} successfully added to player: " << player << " ." << std::endl;
+        COUT(4) << "Quest {" << this->getQuestId() << "} successfully added to player: " << player << " ." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/AddQuestHint.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/AddQuestHint.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/AddQuestHint.cc	(revision 6945)
@@ -72,5 +72,5 @@
         XMLPortParam(AddQuestHint, "hintId", setHintId, getHintId, xmlelement, mode);
 
-        COUT(3) << "New AddQuestHint, with target QuestHint {" << this->getHintId() << "}, created." << std::endl;
+        COUT(4) << "New AddQuestHint, with target QuestHint {" << this->getHintId() << "}, created." << std::endl;
     }
 
@@ -111,5 +111,5 @@
         }
 
-        COUT(3) << "AddQuestHint on player: " << player << " ." << std::endl;
+        COUT(5) << "AddQuestHint on player: " << player << " ." << std::endl;
 
         try
@@ -127,5 +127,5 @@
         }
 
-        COUT(3) << "QuestHint {" << this->getHintId() << "} successfully added to player: " << player << " ." << std::endl;
+        COUT(4) << "QuestHint {" << this->getHintId() << "} successfully added to player: " << player << " ." << std::endl;
         return true;
 
Index: code/branches/presentation3/src/modules/questsystem/AddReward.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/AddReward.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/AddReward.cc	(revision 6945)
@@ -68,5 +68,5 @@
         XMLPortObject(AddReward, Rewardable, "", addRewardable, getRewardables, xmlelement, mode);
 
-        COUT(3) << "New AddReward, with " << this->rewards_.size() << " Rewardables created." << std::endl;
+        COUT(4) << "New AddReward, with " << this->rewards_.size() << " Rewardables created." << std::endl;
     }
 
@@ -103,5 +103,5 @@
     bool AddReward::invoke(PlayerInfo* player)
     {
-        COUT(3) << "AddReward on player: " << player << " ." << std::endl;
+        COUT(5) << "AddReward on player: " << player << " ." << std::endl;
 
         bool check = true;
@@ -111,5 +111,5 @@
         }
 
-        COUT(3) << "Rewardable successfully added to player." << player << " ." << std::endl;
+        COUT(4) << "Rewardable successfully added to player." << player << " ." << std::endl;
 
         return check;
Index: code/branches/presentation3/src/modules/questsystem/CompleteQuest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/CompleteQuest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/CompleteQuest.cc	(revision 6945)
@@ -68,5 +68,5 @@
         SUPER(CompleteQuest, XMLPort, xmlelement, mode);
 
-        COUT(3) << "New CompleteQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+        COUT(4) << "New CompleteQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
     }
 
@@ -87,5 +87,5 @@
         }
 
-        COUT(3) << "CompleteQuest on player: " << player << " ." << std::endl;
+        COUT(5) << "CompleteQuest on player: " << player << " ." << std::endl;
 
         Quest* quest;
@@ -105,5 +105,5 @@
         }
 
-        COUT(3) << "Quest {" << quest->getId() << "} successfully completed by player: " << player << " ." << std::endl;
+        COUT(4) << "Quest {" << quest->getId() << "} successfully completed by player: " << player << " ." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/FailQuest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/FailQuest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/FailQuest.cc	(revision 6945)
@@ -68,5 +68,5 @@
         SUPER(FailQuest, XMLPort, xmlelement, mode);
 
-        COUT(3) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
+        COUT(4) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl;
     }
 
@@ -87,5 +87,5 @@
         }
 
-        COUT(3) << "FailQuest on player: " << player << " ." << std::endl;
+        COUT(4) << "FailQuest on player: " << player << " ." << std::endl;
 
         Quest* quest;
@@ -104,5 +104,5 @@
         }
 
-        COUT(3) << "Quest {" << quest->getId() << "} failed by player: " << player << " ." << std::endl;
+        COUT(4) << "Quest {" << quest->getId() << "} failed by player: " << player << " ." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/GlobalQuest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/GlobalQuest.cc	(revision 6945)
@@ -70,5 +70,5 @@
         XMLPortObject(GlobalQuest, QuestEffect, "reward-effects", addRewardEffect, getRewardEffects, xmlelement, mode);
 
-        COUT(3) << "New GlobalQuest {" << this->getId() << "} created." << std::endl;
+        COUT(4) << "New GlobalQuest {" << this->getId() << "} created." << std::endl;
     }
 
@@ -253,5 +253,5 @@
         this->rewards_.push_back(effect); //!< Add the QuestEffect to the list.
 
-        COUT(3) << "Reward effect was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "Reward effect was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/LocalQuest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/LocalQuest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/LocalQuest.cc	(revision 6945)
@@ -68,5 +68,5 @@
         SUPER(LocalQuest, XMLPort, xmlelement, mode);
 
-        COUT(3) << "New LocalQuest {" << this->getId() << "} created." << std::endl;
+        COUT(4) << "New LocalQuest {" << this->getId() << "} created." << std::endl;
     }
 
Index: code/branches/presentation3/src/modules/questsystem/Quest.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/Quest.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/Quest.cc	(revision 6945)
@@ -99,5 +99,5 @@
         this->parentQuest_ = quest;
 
-        COUT(3) << "Parent Quest {" << quest->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "Parent Quest {" << quest->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
@@ -122,5 +122,5 @@
         this->subQuests_.push_back(quest); //!< Adds the Quest to the end of the list of subquests.
 
-        COUT(3) << "Sub Quest {" << quest->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "Sub Quest {" << quest->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
@@ -146,5 +146,5 @@
         this->hints_.push_back(hint); //!< Adds the QuestHint to the end of the list of QuestHints.
 
-        COUT(3) << "QuestHint {" << hint->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "QuestHint {" << hint->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
@@ -168,5 +168,5 @@
         this->failEffects_.push_back(effect); //!< Adds the QuestEffect to the end of the list of fail QuestEffects.
 
-        COUT(3) << "A FailEffect was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "A FailEffect was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
@@ -190,5 +190,5 @@
         this->completeEffects_.push_back(effect); //!< Adds the QuestEffect to the end of the list of complete QuestEffects.
 
-        COUT(3) << "A CompleteEffect was added to Quest {" << this->getId() << "}." << std::endl;
+        COUT(4) << "A CompleteEffect was added to Quest {" << this->getId() << "}." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/QuestDescription.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestDescription.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestDescription.cc	(revision 6945)
@@ -74,5 +74,5 @@
         XMLPortParam(QuestDescription, "completeMessage", setCompleteMessage, getCompleteMessage, xmlelement, mode);
 
-        COUT(3) << "New QuestDescription with title '" << this->getTitle() << "' created." << std::endl;
+        COUT(4) << "New QuestDescription with title '" << this->getTitle() << "' created." << std::endl;
     }
 
@@ -89,5 +89,5 @@
         Make sure the messages meet the conditions.
     */
-    bool QuestDescription::notificationHelper(const std::string & item, const std::string & status) const
+    bool QuestDescription::notificationHelper(const std::string & item, const std::string & status)
     {
         std::string message;
@@ -122,5 +122,5 @@
         }
 
-        QuestNotification* notification = new QuestNotification(message);
+        QuestNotification* notification = new QuestNotification(this, message);
         notification->send();
         return true;
Index: code/branches/presentation3/src/modules/questsystem/QuestDescription.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestDescription.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestDescription.h	(revision 6945)
@@ -83,5 +83,5 @@
             @return Returns a string containing the fail message of the QuestDescription.
             */
-            inline const std::string & getFailMessage(void) const
+            inline const std::string & getFailMessage(void)
                 { return this->failMessage_; }
 
@@ -90,5 +90,5 @@
             @return Returns a string containing the complete message of the QuestDescription.
             */
-            inline const std::string & getCompleteMessage(void) const
+            inline const std::string & getCompleteMessage(void)
                 { return this->completeMessage_; }
 
@@ -97,5 +97,5 @@
             @return Returns true if successful.
             */
-            inline bool sendAddHintNotification(void) const
+            inline bool sendAddHintNotification(void)
                 { return notificationHelper("hint", ""); }
 
@@ -104,5 +104,5 @@
             @return Returns true if successful.
             */
-            inline bool sendAddQuestNotification(void) const
+            inline bool sendAddQuestNotification(void)
                 { return notificationHelper("quest", "start"); }
 
@@ -111,5 +111,5 @@
             @return Returns true if successful.
             */
-            inline bool sendFailQuestNotification(void) const
+            inline bool sendFailQuestNotification(void)
                 { return notificationHelper("quest", "fail"); }
 
@@ -118,5 +118,5 @@
             @return Returns true if successful.
             */
-            inline bool sendCompleteQuestNotification(void) const
+            inline bool sendCompleteQuestNotification(void)
                 { return notificationHelper("quest", "complete"); }
 
@@ -127,5 +127,5 @@
             std::string completeMessage_; //!< The message displayed when the Quest is completed.
 
-            bool notificationHelper(const std::string & item, const std::string & status) const; //!< Helper for sending QuestDescriptions as Notifications.
+            bool notificationHelper(const std::string & item, const std::string & status); //!< Helper for sending QuestDescriptions as Notifications.
 
             /**
Index: code/branches/presentation3/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestEffectBeacon.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestEffectBeacon.cc	(revision 6945)
@@ -78,5 +78,5 @@
         XMLPortEventSink(QuestEffectBeacon, BaseObject, "execute", execute, xmlelement, mode); //TODO: Change BaseObject to MultiTrigger as soon as MultiTrigger is the base of all triggers.
 
-        COUT(3) << "New QuestEffectBeacon created." << std::endl;
+        COUT(4) << "New QuestEffectBeacon created." << std::endl;
     }
 
@@ -134,5 +134,5 @@
         if(pawn == NULL)
         {
-            COUT(2) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
+            COUT(4) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
             return false;
         }
@@ -147,5 +147,5 @@
         }
 
-        COUT(3) << "QuestEffectBeacon executed on player: " << player << " ." << std::endl;
+        COUT(4) << "QuestEffectBeacon executed on player: " << player << " ." << std::endl;
 
         bool check = QuestEffect::invokeEffects(player, this->effects_); //!< Invoke the QuestEffects on the PlayerInfo.
@@ -249,5 +249,5 @@
         this->effects_.push_back(effect);
 
-        COUT(3) << "A QuestEffect was added to a QuestEffectBeacon." << std::endl;
+        COUT(4) << "A QuestEffect was added to a QuestEffectBeacon." << std::endl;
         return true;
     }
Index: code/branches/presentation3/src/modules/questsystem/QuestGUI.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestGUI.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestGUI.cc	(revision 6945)
@@ -101,5 +101,5 @@
     void QuestGUI::update(void)
     {
-        COUT(3) << "Updating QuestGUI..." << std::endl;
+        COUT(4) << "Updating QuestGUI..." << std::endl;
 
         this->clear(); //!< Clear the GUI.
@@ -122,5 +122,5 @@
             }
         }
-        COUT(3) << "Updating QuestGUI done." << std::endl;
+        COUT(4) << "Updating QuestGUI done." << std::endl;
     }
 
@@ -131,5 +131,5 @@
     void QuestGUI::clear(void)
     {
-        COUT(3) << "Clearing QuestGUI..." << std::endl;
+        COUT(4) << "Clearing QuestGUI..." << std::endl;
 
         //! Clear all nodes.
Index: code/branches/presentation3/src/modules/questsystem/QuestGUINode.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestGUINode.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestGUINode.cc	(revision 6945)
@@ -81,5 +81,5 @@
         this->createWindow();
 
-        COUT(3) << "New QuestGUINode '" << this->window_->getName() << "' created." << std::endl;
+        COUT(4) << "New QuestGUINode '" << this->window_->getName() << "' created." << std::endl;
     }
 
@@ -269,5 +269,5 @@
             }
 
-            COUT(3) << "Show Details: " << this->details_->getName() << std::endl;
+            COUT(4) << "Show Details: " << this->details_->getName() << std::endl;
         }
 
@@ -281,5 +281,5 @@
     bool QuestGUINode::openDetails(const CEGUI::EventArgs& e)
     {
-        COUT(3) << "Open QuestItem..." << std::endl;
+        COUT(4) << "Open QuestItem..." << std::endl;
 
         //CEGUI::Window* window = this->gui_->getRootWindow();
Index: code/branches/presentation3/src/modules/questsystem/QuestHint.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestHint.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestHint.cc	(revision 6945)
@@ -73,5 +73,5 @@
         QuestManager::getInstance().registerHint(this); //!< Registers the QuestHint with the QuestManager.
 
-        COUT(3) << "New QuestHint {" << this->getId() << "} created." << std::endl;
+        COUT(4) << "New QuestHint {" << this->getId() << "} created." << std::endl;
     }
 
@@ -126,10 +126,10 @@
             else
             {
-                COUT(2) << "An already active questHint was trying to get activated." << std::endl;
+                COUT(4) << "An already active questHint was trying to get activated." << std::endl;
                 return false;
             }
         }
 
-        COUT(2) << "A hint of a non-active quest was trying to get activated." << std::endl;
+        COUT(4) << "A hint of a non-active quest was trying to get activated." << std::endl;
         return false;
     }
Index: code/branches/presentation3/src/modules/questsystem/QuestItem.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestItem.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestItem.cc	(revision 6945)
@@ -40,4 +40,7 @@
 namespace orxonox
 {
+
+    CreateUnloadableFactory(QuestItem);
+    
     /**
     @brief
Index: code/branches/presentation3/src/modules/questsystem/QuestItem.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestItem.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestItem.h	(revision 6945)
@@ -72,5 +72,5 @@
             @return Returns a pointer to the QuestDescription object of the QuestItem.
             */
-            inline const QuestDescription* getDescription(void) const
+            inline QuestDescription* getDescription(void) const
                 { return this->description_; }
 
Index: code/branches/presentation3/src/modules/questsystem/QuestListener.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestListener.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestListener.cc	(revision 6945)
@@ -77,5 +77,5 @@
             this->quest_->addListener(this); //!< Adds the QuestListener to the Quests list of listeners.
 
-        COUT(3) << "QuestListener created for quest: {" << this->quest_->getId() << "} with mode '" << this->getMode() << "'." << std::endl;
+        COUT(4) << "QuestListener created for quest: {" << this->quest_->getId() << "} with mode '" << this->getMode() << "'." << std::endl;
     }
 
Index: code/branches/presentation3/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestManager.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestManager.cc	(revision 6945)
@@ -115,5 +115,5 @@
         {
             quest->setRegistered();
-            COUT(3) << "Quest with questId {" << quest->getId() << "} successfully inserted." << std::endl;
+            COUT(4) << "Quest with questId {" << quest->getId() << "} successfully inserted." << std::endl;
             return true;
         }
@@ -157,5 +157,5 @@
         {
             hint->setRegistered();
-            COUT(3) << "QuestHint with hintId {" << hint->getId() << "} successfully inserted." << std::endl;
+            COUT(4) << "QuestHint with hintId {" << hint->getId() << "} successfully inserted." << std::endl;
             return true;
         }
Index: code/branches/presentation3/src/modules/questsystem/QuestNotification.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestNotification.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestNotification.cc	(revision 6945)
@@ -32,16 +32,32 @@
 namespace orxonox {
 
-    const std::string QuestNotification::SENDER("questsystem");
+    /*static*/ const std::string QuestNotification::SENDER("questsystem");
 
+    CreateUnloadableFactory(QuestNotification);
+    
+    /**
+    @brief
+        Default Constructor. Creates a useless QuestNotification.
+    */
     QuestNotification::QuestNotification(BaseObject* creator) : Notification(creator)
     {
-        this->initialize();
+        RegisterObject(QuestNotification);
     }
 
-    QuestNotification::QuestNotification(const std::string & message) : Notification(message)
+    /**
+    @brief
+        Creates a QuestNotification with the input message.
+    @param message
+        The message to be sent.
+    */
+    QuestNotification::QuestNotification(BaseObject* creator, const std::string & message) : Notification(creator, message)
     {
-        this->initialize();
+        RegisterObject(QuestNotification);
     }
 
+    /**
+    @brief
+        Destructor.
+    */
     QuestNotification::~QuestNotification()
     {
@@ -49,4 +65,10 @@
     }
 
+    /**
+    @brief
+        Send the QuestNotification.
+    @return
+        Returns true if successful.
+    */
     bool QuestNotification::send(void)
     {
@@ -54,9 +76,4 @@
     }
 
-    void QuestNotification::initialize(void)
-    {
-        RegisterObject(QuestNotification);
-    }
-
 
 }
Index: code/branches/presentation3/src/modules/questsystem/QuestNotification.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/QuestNotification.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/QuestNotification.h	(revision 6945)
@@ -39,5 +39,5 @@
     /**
     @brief
-
+        The QuestNotification is a special Notification that has the single property that it is only sent by the questsystem.
     @author
         Damian 'Mozork' Frick
@@ -46,14 +46,12 @@
     {
         public:
-            QuestNotification(BaseObject* creator);
-            QuestNotification(const std::string & message);
-            virtual ~QuestNotification();
+            QuestNotification(BaseObject* creator); //!< Default Constructor.
+            QuestNotification(BaseObject* creator, const std::string & message); //!< Constructor.
+            virtual ~QuestNotification(); //!< Destructor.
 
-            bool send(void);
+            bool send(void); //!< Send the QuestNotification.
 
         private:
-            static const std::string SENDER;
-
-            void initialize(void);
+            static const std::string SENDER; //!< A string identifying the questsystem as the sender.
 
     };
Index: code/branches/presentation3/src/modules/questsystem/notifications/Notification.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/Notification.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/Notification.cc	(revision 6945)
@@ -40,4 +40,6 @@
 {
 
+    CreateUnloadableFactory(Notification);
+    
     /**
     @brief
@@ -56,5 +58,5 @@
         The message of the Notification.
     */
-    Notification::Notification(const std::string & message) : BaseObject(NULL)
+    Notification::Notification(BaseObject* creator, const std::string & message) : BaseObject(creator)
     {
         this->message_ = message;
@@ -67,4 +69,5 @@
     Notification::~Notification()
     {
+        
     }
 
Index: code/branches/presentation3/src/modules/questsystem/notifications/Notification.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/Notification.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/Notification.h	(revision 6945)
@@ -53,5 +53,5 @@
         public:
             Notification(BaseObject* creator);
-            Notification(const std::string & message);
+            Notification(BaseObject* creator, const std::string & message);
             virtual ~Notification();
 
Index: code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.cc	(revision 6945)
@@ -118,4 +118,8 @@
     @brief
         Unregisters a Notification within the NotificationManager.
+    @param notification
+        A pointer to the Notification to be unregistered.
+    @param listener
+        A pointer to the NotificationListener the Notification is unregistered for.
     */
     void NotificationManager::unregisterNotification(Notification* notification, NotificationListener* listener)
@@ -124,9 +128,13 @@
         assert(listener);
 
+        // If the Notification was removed from the list of Notifications of the input NotificationListener, the counter for the Notification of the number of NotificationListeners it is present in is decremented.
         if(this->removeNotification(notification, *(this->notificationLists_.find(this->listenerList_.find(listener)->second)->second)))
             this->listenerCounter_[notification] = this->listenerCounter_[notification] - 1;
+
+        // If the Notification is no longer present in any of the NotificationListeners it can be removed from the map of all Notifications and be destroyed.
         if(this->listenerCounter_[notification] == (unsigned int) 0)
         {
             this->removeNotification(notification, this->allNotificationsList_);
+            this->listenerCounter_.erase(notification);
             notification->destroy();
         }
@@ -138,7 +146,15 @@
     @brief
         Helper method that removes an input notification form an input map.
+    @param notification
+        A pointer to the notification to be removed.
+    @param map
+        The map the notification should be removed from.
+    @return
+        Returns true if successful.
     */
     bool NotificationManager::removeNotification(Notification* notification, std::multimap<std::time_t, Notification*>& map)
     {
+        // Iterates through all items in the map until the Notification is found.
+        //TODO: Do more efficiently?
         for(std::multimap<std::time_t, Notification*>::iterator it = map.begin(); it != map.end(); it++)
         {
@@ -222,5 +238,8 @@
         this->listenerList_.erase(listener);
         this->notificationLists_.erase(identifier);
-        delete map;
+
+        // If the map is not the map of all notifications, delete it.
+        if(map != &this->allNotificationsList_)
+            delete map;
 
         COUT(4) << "NotificationListener unregistered with the NotificationManager." << std::endl;
Index: code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/NotificationManager.h	(revision 6945)
@@ -60,6 +60,6 @@
             virtual ~NotificationManager();
 
-            static const std::string ALL;
-            static const std::string NONE;
+            static const std::string ALL; //!< Static string to indicate a sender that sends to all NotificationListeners.
+            static const std::string NONE; //!< Static string to indicare a sender that sends to no specific NotificationListener.
 
             bool registerNotification(Notification* notification); //!< Registers a Notification within the NotificationManager.
@@ -99,6 +99,5 @@
             std::map<Notification*, unsigned int> listenerCounter_; //!< A container to store the number of NotificationListeners a Notification is registered with.
 
-            bool removeNotification(Notification* notification, std::multimap<std::time_t, Notification*>& map);
-
+            bool removeNotification(Notification* notification, std::multimap<std::time_t, Notification*>& map); //!< Helper method that removes an input notification form an input map.
 
     };
Index: code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.cc
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 6945)
@@ -124,5 +124,5 @@
         XMLPortParam(NotificationQueue, "position", setPosition, getPosition, xmlElement, mode);
 
-        COUT(3) << "NotificationQueue created." << std::endl;
+        COUT(3) << "NotificationQueue '" << this->getName() << "' created." << std::endl;
     }
 
@@ -179,5 +179,5 @@
         delete notifications;
 
-        COUT(3) << "NotificationQueue updated." << std::endl;
+        COUT(4) << "NotificationQueue '" << this->getName() << "' updated." << std::endl;
     }
 
@@ -202,5 +202,5 @@
         }
 
-        COUT(3) << "NotificationQueue updated. A new Notifications has been added." << std::endl;
+        COUT(4) << "NotificationQueue '" << this->getName() << "' updated. A new Notifications has been added." << std::endl;
     }
 
@@ -429,4 +429,5 @@
             return false;
 
+        // Unregister the NotificationQueue with the NotificationManager.
         NotificationManager::getInstance().unregisterNotification(container->notification, this);
         
Index: code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.h
===================================================================
--- code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.h	(revision 6944)
+++ code/branches/presentation3/src/modules/questsystem/notifications/NotificationQueue.h	(revision 6945)
@@ -71,4 +71,5 @@
 
         Creating a NotificationQueue through XML goes as follows:
+        Be aware that the NotificationQueue must be inside the <Level></Level> tags or bad things will happen.
         <NotificationQueue
             name = "SuperQueue" //Name of your OverlayQueue.
