Index: code/branches/questsystem3/src/orxonox/objects/quest/AddQuest.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/AddQuest.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/AddQuest.cc	(revision 2346)
@@ -42,5 +42,4 @@
 
 #include "orxonox/objects/infos/PlayerInfo.h"
-#include "orxonox/overlays/notifications/Notification.h"
 #include "QuestManager.h"
 #include "Quest.h"
@@ -111,6 +110,4 @@
 
         COUT(3) << "Quest {" << this->getQuestId() << "} successfully added to player." << std::endl;
-        Notification* notification = new Notification("Crazy Message...", "Title", 30);
-        notification->send();
         return true;
     }
Index: code/branches/questsystem3/src/orxonox/objects/quest/CompleteQuest.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/CompleteQuest.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/CompleteQuest.cc	(revision 2346)
@@ -42,5 +42,4 @@
 #include "QuestManager.h"
 #include "Quest.h"
-#include "orxonox/overlays/notifications/Notification.h"
 
 namespace orxonox {
@@ -111,6 +110,4 @@
 
         COUT(3) << "Quest {" << quest->getId() << "} successfully completed by player: " << player << " ." << std::endl;
-        Notification* notification = new Notification("Crazy Message...", "Title", 30);
-        notification->send();
         return true;
     }
Index: code/branches/questsystem3/src/orxonox/objects/quest/FailQuest.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/FailQuest.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/FailQuest.cc	(revision 2346)
@@ -40,5 +40,4 @@
 
 #include "orxonox/objects/infos/PlayerInfo.h"
-#include "orxonox/overlays/notifications/Notification.h"
 #include "QuestManager.h"
 #include "Quest.h"
Index: code/branches/questsystem3/src/orxonox/objects/quest/Quest.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/Quest.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/Quest.cc	(revision 2346)
@@ -377,4 +377,6 @@
         QuestListener::advertiseStatusChange(this->listeners_, "fail"); //!< Tells the QuestListeners, that the status has changed to failed.
         this->setStatus(player, questStatus::failed);
+        
+        this->getDescription()->sendFailQuestNotification();
         return true;
     }
@@ -392,4 +394,6 @@
         QuestListener::advertiseStatusChange(this->listeners_, "complete"); //!< Tells the QuestListeners, that the status has changed to completed.
         this->setStatus(player, questStatus::completed);
+        
+        this->getDescription()->sendCompleteQuestNotification();
         return true;
     }
@@ -414,4 +418,6 @@
         
         this->setStatus(player, questStatus::active);
+        
+        this->getDescription()->sendAddQuestNotification();
 	return true;
     }
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.cc	(revision 2346)
@@ -38,4 +38,5 @@
 
 #include "core/CoreIncludes.h"
+#include "orxonox/overlays/notifications/Notification.h"
 
 namespace orxonox {
@@ -75,7 +76,60 @@
         XMLPortParam(QuestDescription, "description", setDescription, getDescription, xmlelement, mode);
         XMLPortParam(QuestDescription, "failMessage", setFailMessage, getFailMessage, xmlelement, mode);
-        XMLPortParam(QuestDescription, "failMessage", setCompleteMessage, getCompleteMessage, xmlelement, mode);
+        XMLPortParam(QuestDescription, "completeMessage", setCompleteMessage, getCompleteMessage, xmlelement, mode);
 
         COUT(3) << "New QuestDescription with title '" << this->getTitle() << "' created." << std::endl;
+    }
+    
+    /**
+    @brief
+        This method is a helper for sending QuestDescriptions as Notifications.
+    @param item
+        The item the QuestDescription is for.
+    @param status
+        The status the QuestDescription us for.
+    @return
+        Returns true if successful.
+    */
+    bool QuestDescription::notificationHelper(const std::string & item, const std::string & status) const
+    {
+        std::string message = "";
+        std::string title = "";
+        if(item == "hint")
+        {
+            title = "You received a hint: '" + this->title_ + "'";
+            message = this->description_;
+        }
+        else if(item == "quest")
+        {
+            if(status == "start")
+            {
+                title = "You received a new quest: '" + this->title_ + "'";
+                message = this->description_;
+            }
+            else if(status == "fail")
+            {
+                title = "You failed the quest: '" + this->title_ + "'";
+                message = this->failMessage_;
+            }
+            else if(status == "complete")
+            {
+                title = "You successfully completed the quest: '" + this->title_ + "'";
+                message = this->completeMessage_;
+            }
+            else
+            {
+                COUT(2) << "Bad input in notificationHelper, this should not be happening!" << std::endl;
+                return false;
+            }
+        }
+        else
+        {
+            COUT(2) << "Bad input in notificationHelper, this should not be happening!" << std::endl;
+            return false;
+        }
+        
+        Notification* notification = new Notification(message, title, 10);
+        notification->send();
+        return true;
     }
 
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.h
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.h	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestDescription.h	(revision 2346)
@@ -91,4 +91,32 @@
 	    inline const std::string & getCompleteMessage(void) const
 		{ return this->completeMessage_; }
+	    
+	    /**
+	    @brief Sends a Notification displaying that a QuestHint was added.
+	    @return Returns true if successful.
+	    */
+	    inline bool sendAddHintNotification(void) const
+                { return notificationHelper("hint", ""); }
+	    
+	    /**
+	    @brief Sends a Notification displaying that a Quest was added.
+	    @return Returns true if successful.
+	    */
+	    inline bool sendAddQuestNotification(void) const
+                { return notificationHelper("quest", "start"); }
+	    
+	    /**
+	    @brief Sends a Notification displaying that a Quest was failed.
+	    @return Returns true if successful.
+	    */
+	    inline bool sendFailQuestNotification(void) const
+                { return notificationHelper("quest", "fail"); }
+	    
+	    /**
+	    @brief Sends a Notification displaying that a Quest was completed.
+	    @return Returns true if successful.
+	    */
+	    inline bool sendCompleteQuestNotification(void) const
+                { return notificationHelper("quest", "complete"); }
 
         private:
@@ -97,4 +125,6 @@
             std::string failMessage_; //!< The message displayed when the Quest is failed.
             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.
 
             /**
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestHint.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestHint.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestHint.cc	(revision 2346)
@@ -41,4 +41,5 @@
 #include "orxonox/objects/infos/PlayerInfo.h"
 #include "QuestManager.h"
+#include "QuestDescription.h"
 #include "Quest.h"
 
@@ -122,4 +123,6 @@
             {
                 this->playerStatus_[player] = questHintStatus::active;
+                
+                this->getDescription()->sendAddHintNotification();
                 return true;
             }
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestItem.h
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestItem.h	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestItem.h	(revision 2346)
@@ -67,12 +67,12 @@
             /**
             @brief Returns the id of this QuestItem.
-        @return Returns the id of the QuestItem.
+            @return Returns the id of the QuestItem.
             */
             inline const std::string & getId(void) const
                 { return this->id_; }
-        /**
-        @brief Returns the QuestDescription of the QuestItem.
-        @return Returns a pointer to the QuestDescription object of the QuestItem.
-        */
+	    /**
+	    @brief Returns the QuestDescription of the QuestItem.
+	    @return Returns a pointer to the QuestDescription object of the QuestItem.
+	    */
             inline const QuestDescription* getDescription(void) const
                 { return this->description_; }
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.cc	(revision 2346)
@@ -43,4 +43,7 @@
     {
         RegisterObject(QuestListener);
+        
+        this->status_ = questListenerStatus::start;
+        this->quest_ = NULL;
     }
     
@@ -62,5 +65,5 @@
         this->quest_->addListener(this);
         
-        COUT(3) << "QuestListener created for quest: {" << this->quest_->getId() << "} and status '" << this->status_ << "'." << std::endl;
+        COUT(3) << "QuestListener created for quest: {" << this->quest_->getId() << "} and status '" << this->getQuestStatus() << "'." << std::endl;
     }
     
@@ -80,7 +83,4 @@
     {
         this->fireEvent(true); //TDO This' right?
-        
-        COUT(3) << "QuestListener fired Event, expect for something to happen." << std::endl; //TDO remove
-        
         return true;
     }
Index: code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.h
===================================================================
--- code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.h	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/objects/quest/QuestListener.h	(revision 2346)
@@ -80,5 +80,4 @@
             questListenerStatus::Enum status_;
             Quest* quest_;
-            BaseObject* target_;
     
     };
Index: code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 2346)
@@ -87,5 +87,5 @@
         updateQueue();
         
-        COUT(3) << "Notification inserted, title: " << notification->getTitle() << ", message: " << notification->getMessage() << std::endl;
+        COUT(4) << "Notification inserted. Title: " << notification->getTitle() << std::endl;
         
         return true;
@@ -104,13 +104,48 @@
                 continue;
             
-            COUT(3) << "Update, title: " << container->notification->getTitle() << ", message: " << container->notification->getMessage() << std::endl;
-            
-	    text = text + "\n\n\n------------" + container->notification->getTitle() + "\n\n" + container->notification->getMessage();
+	    text = text + "\n\n\n------------\n\n" + container->notification->getTitle() + "\n\n" + container->notification->getMessage();
         }
-
-        COUT(3) << "Queue updated: " << text << std::endl;
         
         NotificationQueue::queue_s->setQueueText(text);
     }
+    
+    const std::string & NotificationManager::clipMessage(const std::string & message)
+    {
+        std::string* clippedMessageP = new std::string();
+        std::string clippedMessage = *clippedMessageP;
+        clippedMessage = "";
+        std::string tempWord = "";
+        int wordLength = 0;
+        signed int i = 0;
+        int widthLeft = NotificationQueue::queue_s->getWidth();
+        while(i < message.length())
+        {
+            while(i < message.length() && message[i] != ' ' && message[i] != '\n')
+            {
+                tempWord = tempWord + message[i];
+                i++;
+                wordLength++;
+            }
+            
+            if(wordLength <= widthLeft)
+            {
+                clippedMessage = clippedMessage + tempWord + message[i];
+                widthLeft -= (wordLength+1);
+                wordLength = 0;
+                tempWord = "";
+                i++;
+            }
+            else
+            {
+                clippedMessage = clippedMessage + '\n' + tempWord + message[i];
+                widthLeft = NotificationQueue::queue_s->getWidth() - (wordLength+1);
+                i++;
+                wordLength = 0;
+                tempWord = "";
+            }
+        }
+        
+        return clippedMessage;
+    }
 
 }
Index: code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.h
===================================================================
--- code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.h	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationManager.h	(revision 2346)
@@ -66,4 +66,5 @@
             
             static void updateQueue(void);
+            static const std::string & clipMessage(const std::string & message);
 
     };
Index: code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 2346)
@@ -53,4 +53,7 @@
             queue_s = this;
 	}
+	
+	this->length_ = 3;
+	this->width_ = 50;
     }
     
@@ -65,4 +68,5 @@
         
         XMLPortParam(NotificationQueue, "length", setLength, getLength, xmlElement, mode);
+        XMLPortParam(NotificationQueue, "width", setWidth, getWidth, xmlElement, mode);
     }
     
@@ -84,4 +88,14 @@
     }
     
+    bool NotificationQueue::setWidth(int width)
+    {
+        if(width > 0)
+        {
+            this->width_ = width;
+            return true;
+        }
+        return false;
+    }
+    
     void NotificationQueue::setQueueText(const std::string & text)
     {
Index: code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.h
===================================================================
--- code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 2345)
+++ code/branches/questsystem3/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 2346)
@@ -62,11 +62,15 @@
 	    int getLength(void) const
                 { return this->length_; }
+	    int getWidth(void) const
+                { return this->width_; }
 	    
 	    void setQueueText(const std::string & text);
 	    bool setLength(int length);
+	    bool setWidth(int width);
 	    
 	private:
             Ogre::UTFString queueText_;
             int length_;
+            int width_;
     
     };
