Index: code/branches/notifications/src/modules/notifications/CMakeLists.txt
===================================================================
--- code/branches/notifications/src/modules/notifications/CMakeLists.txt	(revision 7319)
+++ code/branches/notifications/src/modules/notifications/CMakeLists.txt	(revision 7324)
@@ -16,4 +16,5 @@
     NotificationsPrecompiledHeaders.h
   LINK_LIBRARIES
+    objects
     orxonox
     overlays
Index: code/branches/notifications/src/modules/notifications/Notification.cc
===================================================================
--- code/branches/notifications/src/modules/notifications/Notification.cc	(revision 7319)
+++ code/branches/notifications/src/modules/notifications/Notification.cc	(revision 7324)
@@ -35,4 +35,5 @@
 
 #include "core/CoreIncludes.h"
+#include "network/NetworkFunction.h"
 #include "NotificationManager.h"
 
@@ -42,12 +43,15 @@
     CreateUnloadableFactory(Notification);
 
+    registerMemberNetworkFunction(Notification, send);
+
     /**
     @brief
         Default constructor. Initializes the object.
     */
-    Notification::Notification(BaseObject* creator) : BaseObject(creator)
+    Notification::Notification(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
     {
         RegisterObject(Notification);
         this->initialize();
+        this->registerVariables();
     }
 
@@ -58,9 +62,10 @@
         The message of the Notification.
     */
-    Notification::Notification(BaseObject* creator, const std::string & message) : BaseObject(creator)
+    Notification::Notification(BaseObject* creator, const std::string & message) : BaseObject(creator), Synchronisable(creator)
     {
         RegisterObject(Notification);
         this->initialize();
         this->message_ = message;
+        this->registerVariables();
     }
 
@@ -85,13 +90,9 @@
     }
 
-    /**
-    @brief
-        Sends the Notification to the Notificationmanager, with sender NetificationManager::NONE.
-    @return
-        Returns true if successful.
-    */
-    bool Notification::send(void)
+    void Notification::registerVariables(void)
     {
-        return this->send(NotificationManager::NONE);
+        registerVariable(this->message_);
+        registerVariable(this->sender_);
+        registerVariable(this->sent_);
     }
 
@@ -104,16 +105,23 @@
         Returns true if successful.
     */
-    bool Notification::send(const std::string & sender)
+    bool Notification::send(unsigned int clientId, const std::string & sender = NotificationManager::NONE)
     {
-        if(this->isSent()) //TODO: Needed?
-            return false;
-        
-        this->sender_ = sender;
-        bool successful = NotificationManager::getInstance().registerNotification(this);
-        if(!successful)
-            return false;
-        this->sent_ = true;
+        if(GameMode::isMaster())
+        {
+            if(this->isSent()) //TODO: Needed?
+                return false;
 
-        COUT(3) << "Notification \"" << this->getMessage() << "\" sent." << std::endl;
+            this->sender_ = sender;
+            bool successful = NotificationManager::getInstance().registerNotification(this);
+            if(!successful)
+                return false;
+            this->sent_ = true;
+
+            COUT(3) << "Notification \"" << this->getMessage() << "\" sent." << std::endl;
+        }
+        else
+        {
+            callMemberNetworkFunction(Notification, send, this->getObjectID(), clientId, clientId, sender);
+        }
 
         return true;
Index: code/branches/notifications/src/modules/notifications/Notification.h
===================================================================
--- code/branches/notifications/src/modules/notifications/Notification.h	(revision 7319)
+++ code/branches/notifications/src/modules/notifications/Notification.h	(revision 7324)
@@ -39,4 +39,5 @@
 #include <string>
 #include "core/BaseObject.h"
+#include "network/synchronisable/Synchronisable.h"
 
 namespace orxonox
@@ -49,5 +50,5 @@
         Damian 'Mozork' Frick
     */
-    class _NotificationsExport Notification : public BaseObject
+    class _NotificationsExport Notification : public BaseObject, public Synchronisable
     {
         public:
@@ -56,6 +57,5 @@
             virtual ~Notification();
 
-            bool send(void); //!< Sends the Notification to the Notificationmanager, with sender NotificationManager::NONE;
-            bool send(const std::string & sender); //!< Sends the Notification to the Notificationmanager.
+            bool send(unsigned int clientId, const std::string & sender); //!< Sends the Notification to the Notificationmanager.
 
             /**
@@ -83,4 +83,5 @@
 
             void initialize(void);
+            void registerVariables(void);
 
     };
Index: code/branches/notifications/src/modules/notifications/NotificationDispatcher.cc
===================================================================
--- code/branches/notifications/src/modules/notifications/NotificationDispatcher.cc	(revision 7319)
+++ code/branches/notifications/src/modules/notifications/NotificationDispatcher.cc	(revision 7324)
@@ -39,4 +39,7 @@
 #include "Notification.h"
 #include "NotificationManager.h"
+#include "interfaces/PlayerTrigger.h"
+#include "infos/PlayerInfo.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -86,11 +89,13 @@
     @brief
         Dispatches a Notification with a message supplied by the createNotificationMessage() method, which can be overloaded.
+    @param clientId
+        The id of the client the notification should be dispatched to.
     */
-    void NotificationDispatcher::dispatch(void)
+    void NotificationDispatcher::dispatch(unsigned int clientId)
     {
         const std::string message = this->createNotificationMessage();
         Notification* notification = new Notification(this, message);
 
-        notification->send(this->getSender());
+        notification->send(clientId, this->getSender());
     }
 
@@ -103,5 +108,5 @@
         Returns true if the NotificationDispatcher was successfully triggered.
     */
-    bool NotificationDispatcher::trigger(bool triggered)
+    bool NotificationDispatcher::trigger(bool triggered, BaseObject* trigger)
     {
         if(!triggered || !this->isActive()) // If the NotificationDispatcher is inactive it cannot be executed.
@@ -110,5 +115,34 @@
         COUT(4) << "NotificationDispatcher (&" << this << ") triggered." << std::endl;
 
-        this->dispatch();
+        PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
+        Pawn* pawn = NULL;
+
+        // If the trigger is a PlayerTrigger.
+        if(pTrigger != NULL)
+        {
+            if(!pTrigger->isForPlayer())  //!< The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+                return false;
+            else
+                pawn = pTrigger->getTriggeringPlayer();
+        }
+        else
+            return false;
+
+        if(pawn == NULL)
+        {
+            COUT(4) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
+            return false;
+        }
+
+        //! Extract the PlayerInfo from the Pawn.
+        PlayerInfo* player = pawn->getPlayer();
+
+        if(player == NULL)
+        {
+            COUT(3) << "The PlayerInfo* is NULL." << std::endl;
+            return false;
+        }
+
+        this->dispatch(player->getClientID());
 
         return true;
Index: code/branches/notifications/src/modules/notifications/NotificationDispatcher.h
===================================================================
--- code/branches/notifications/src/modules/notifications/NotificationDispatcher.h	(revision 7319)
+++ code/branches/notifications/src/modules/notifications/NotificationDispatcher.h	(revision 7324)
@@ -65,6 +65,6 @@
                 { return this->sender_; }
 
-            void dispatch(void); //!< Dispatches a specific Notification.
-            bool trigger(bool triggered); //!< Is called when the NotificationDispatcher is triggered.
+            void dispatch(unsigned int clientId); //!< Dispatches a specific Notification.
+            bool trigger(bool triggered, BaseObject* trigger); //!< Is called when the NotificationDispatcher is triggered.
 
         protected:
Index: code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.cc
===================================================================
--- code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 7319)
+++ code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 7324)
@@ -35,4 +35,5 @@
 
 #include "core/CoreIncludes.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -65,4 +66,11 @@
     {
         RegisterObject(MultiTriggerContainer);
+
+        Pawn* pawn = orxonox_cast<Pawn*>(data);
+        if(pawn != NULL)
+        {
+            this->setForPlayer(true);
+            this->setTriggeringPlayer(pawn);
+        }
     }
 
Index: code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.h
===================================================================
--- code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.h	(revision 7319)
+++ code/branches/notifications/src/modules/objects/triggers/MultiTriggerContainer.h	(revision 7324)
@@ -38,4 +38,5 @@
 
 #include "core/BaseObject.h"
+#include "interfaces/PlayerTrigger.h"
 
 namespace orxonox
@@ -48,5 +49,5 @@
         Damian 'Mozork' Frick
     */
-    class _ObjectsExport MultiTriggerContainer : public BaseObject
+    class _ObjectsExport MultiTriggerContainer : public BaseObject, public PlayerTrigger
     {
 
@@ -72,4 +73,5 @@
             MultiTrigger* originator_; //!< The originator.
             BaseObject* data_; //!< The data.
+
     };
 
Index: code/branches/notifications/src/modules/objects/triggers/Trigger.cc
===================================================================
--- code/branches/notifications/src/modules/objects/triggers/Trigger.cc	(revision 7319)
+++ code/branches/notifications/src/modules/objects/triggers/Trigger.cc	(revision 7324)
@@ -160,5 +160,4 @@
   void Trigger::triggered(bool bIsTriggered)
   {
-      COUT(1) << "Trigger triggered." << std::endl; //TODO: Remove debug.
     this->fireEvent(bIsTriggered);
   }
Index: code/branches/notifications/src/modules/questsystem/QuestNotification.cc
===================================================================
--- code/branches/notifications/src/modules/questsystem/QuestNotification.cc	(revision 7319)
+++ code/branches/notifications/src/modules/questsystem/QuestNotification.cc	(revision 7324)
@@ -73,5 +73,5 @@
     bool QuestNotification::send(void)
     {
-        return this->Notification::send(QuestNotification::SENDER);
+        return true;//this->Notification::send(QuestNotification::SENDER); //TODO: Adjust.
     }
 
