Index: code/trunk/src/modules/notifications/Notification.cc
===================================================================
--- code/trunk/src/modules/notifications/Notification.cc	(revision 7463)
+++ code/trunk/src/modules/notifications/Notification.cc	(revision 7474)
@@ -42,17 +42,11 @@
 {
 
-    CreateUnloadableFactory(Notification);
-
-    registerMemberNetworkFunction(Notification, send);
-
     /**
     @brief
         Default constructor. Initializes the object.
-    @param creator
-        The object that created this Notification 
     */
-    Notification::Notification(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
+    Notification::Notification()
     {
-        RegisterObject(Notification);
+        RegisterRootObject(Notification);
         this->initialize();
         this->registerVariables();
@@ -67,10 +61,9 @@
         The message of the Notification.
     */
-    Notification::Notification(BaseObject* creator, const std::string & message) : BaseObject(creator), Synchronisable(creator)
+    Notification::Notification(const std::string & message)
     {
-        RegisterObject(Notification);
+        RegisterRootObject(Notification);
         this->initialize();
         this->message_ = message;
-        this->registerVariables();
     }
 
@@ -95,16 +88,7 @@
     }
 
-    void Notification::registerVariables(void)
-    {
-        registerVariable(this->message_);
-        registerVariable(this->sender_);
-        registerVariable(this->sent_);
-    }
-
     /**
     @brief
         Sends the Notification to the Notificationmanager, which then in turn distributes it to the different NotificationQueues.
-    @param clientId
-        The id of the client that this Notification is sent to.
     @param sender
         The sender the Notification was sent by. Used by the NotificationManager to distributes the notification to the correct NotificationQueues.
@@ -112,20 +96,5 @@
         Returns true if successful.
     */
-    bool Notification::send(unsigned int clientId, const std::string & sender = NotificationManager::NONE)
-    {
-        COUT(0) << "MUP: " << Host::getPlayerID() << "|" << clientId << std::endl;
-        if(GameMode::isStandalone() || Host::getPlayerID() == clientId)
-        {
-            this->sendHelper(sender);
-        }
-        else if(GameMode::isServer())
-        {
-            callMemberNetworkFunction(Notification, send, this->getObjectID(), clientId, clientId, sender);
-        }
-
-        return true;
-    }
-
-    bool Notification::sendHelper(const std::string& sender)
+    bool Notification::send(const std::string & sender)
     {
         if(this->isSent()) //TODO: Needed?
Index: code/trunk/src/modules/notifications/Notification.h
===================================================================
--- code/trunk/src/modules/notifications/Notification.h	(revision 7463)
+++ code/trunk/src/modules/notifications/Notification.h	(revision 7474)
@@ -51,13 +51,12 @@
         Damian 'Mozork' Frick
     */
-    class _NotificationsExport Notification : public BaseObject, public Synchronisable
+    class _NotificationsExport Notification : public OrxonoxClass
     {
         public:
-            Notification(BaseObject* creator);
-            Notification(BaseObject* creator, const std::string & message);
+            Notification();
+            Notification(const std::string & message);
             virtual ~Notification();
 
-            bool send(unsigned int clientId, const std::string & sender); //!< Sends the Notification to the Notificationmanager.
-            bool sendHelper(const std::string& sender);
+            bool send(const std::string & sender); //!< Sends the Notification to the Notificationmanager.
 
             /**
Index: code/trunk/src/modules/notifications/NotificationDispatcher.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 7463)
+++ code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 7474)
@@ -35,11 +35,15 @@
 
 #include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
 #include "core/XMLPort.h"
-#include "core/EventIncludes.h"
+#include "network/NetworkFunction.h"
+#include "network/Host.h"
+
+#include "infos/PlayerInfo.h"
+#include "interfaces/PlayerTrigger.h"
+#include "worldentities/pawns/Pawn.h"
+
 #include "Notification.h"
 #include "NotificationManager.h"
-#include "interfaces/PlayerTrigger.h"
-#include "infos/PlayerInfo.h"
-#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -48,13 +52,16 @@
     CreateUnloadableFactory(NotificationDispatcher);
 
+    registerMemberNetworkFunction(NotificationDispatcher, dispatch);
+
     /**
     @brief
         Default constructor. Initializes the object.
     */
-    NotificationDispatcher::NotificationDispatcher(BaseObject* creator) : BaseObject(creator)
+    NotificationDispatcher::NotificationDispatcher(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
     {
         RegisterObject(NotificationDispatcher);
 
         this->sender_ = NotificationManager::NONE;
+        this->registerVariables();
     }
 
@@ -86,4 +93,9 @@
     }
 
+    void NotificationDispatcher::registerVariables(void)
+    {
+        registerVariable(this->sender_, VariableDirection::ToClient);
+    }
+
     /**
     @brief
@@ -94,8 +106,13 @@
     void NotificationDispatcher::dispatch(unsigned int clientId)
     {
-        const std::string message = this->createNotificationMessage();
-        Notification* notification = new Notification(this, message);
-
-        notification->send(clientId, this->getSender());
+        if(GameMode::isStandalone() || Host::getPlayerID() == clientId || this->getSyncMode() == 0x0)
+        {
+            const std::string message = this->createNotificationMessage();
+            NotificationManager::sendNotification(message, clientId, this->getSender());
+        }
+        else if(GameMode::isServer())
+        {
+            callMemberNetworkFunction(NotificationDispatcher, dispatch, this->getObjectID(), clientId, clientId);
+        }
     }
 
@@ -123,5 +140,5 @@
         if(pTrigger != NULL)
         {
-            if(!pTrigger->isForPlayer())  //!< The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+            if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
                 return false;
             else
@@ -133,9 +150,9 @@
         if(pawn == NULL)
         {
-            COUT(4) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
+            COUT(4) << "The NotificationDispatcher was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
             return false;
         }
 
-        //! Extract the PlayerInfo from the Pawn.
+        // Extract the PlayerInfo from the Pawn.
         PlayerInfo* player = pawn->getPlayer();
 
Index: code/trunk/src/modules/notifications/NotificationDispatcher.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 7463)
+++ code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 7474)
@@ -40,4 +40,5 @@
 #include <string>
 #include "core/BaseObject.h"
+#include "network/synchronisable/Synchronisable.h"
 
 namespace orxonox
@@ -50,5 +51,5 @@
         Damian 'Mozork' Frick
     */
-    class _NotificationsExport NotificationDispatcher : public BaseObject
+    class _NotificationsExport NotificationDispatcher : public BaseObject, public Synchronisable
     {
         public:
@@ -72,4 +73,6 @@
             std::string sender_; //!< The name of the sender of the Notification dispatched by this NotificationDispatcher.
 
+           void registerVariables(void);
+
             /**
             @brief Set the sender of the Notification dispatched by this NotificationDispatcher.
Index: code/trunk/src/modules/notifications/NotificationManager.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationManager.cc	(revision 7463)
+++ code/trunk/src/modules/notifications/NotificationManager.cc	(revision 7474)
@@ -38,4 +38,6 @@
 #include "core/GUIManager.h"
 #include "core/LuaState.h"
+#include "network/Host.h"
+#include "network/NetworkFunction.h"
 #include "util/ScopedSingletonManager.h"
 
@@ -59,4 +61,6 @@
 
     SetConsoleCommand("enterEditMode", &NotificationManager::enterEditMode);
+
+    registerStaticNetworkFunction(NotificationManager::sendNotification);
 
     /**
@@ -100,4 +104,17 @@
         }
         this->queues_.clear();
+    }
+
+    /*static*/ void NotificationManager::sendNotification(const std::string& message, unsigned int clientId, const std::string& sender)
+    {
+        if(GameMode::isStandalone() || Host::getPlayerID() == clientId)
+        {
+            Notification* notification = new Notification(message);
+            notification->send(sender);
+        }
+        else if(GameMode::isServer())
+        {
+            callStaticNetworkFunction(NotificationManager::sendNotification, clientId, message, clientId, sender);
+        }
     }
 
Index: code/trunk/src/modules/notifications/NotificationManager.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationManager.h	(revision 7463)
+++ code/trunk/src/modules/notifications/NotificationManager.h	(revision 7474)
@@ -70,4 +70,6 @@
             static const std::string NONE; //!< Static string to indicare a sender that sends to no specific NotificationListener.
 
+            static void sendNotification(const std::string& message, unsigned int clientId, const std::string& sender = NotificationManager::NONE);
+
             bool registerNotification(Notification* notification); //!< Registers a Notification within the NotificationManager.
             void unregisterNotification(Notification* notification, NotificationListener* listener); //!< Unregisters a Notification within the NotificationManager for a given NotificationListener.
Index: code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc
===================================================================
--- code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc	(revision 7463)
+++ code/trunk/src/modules/notifications/dispatchers/CommandNotification.cc	(revision 7474)
@@ -55,4 +55,5 @@
 
         this->setSender("commandNotification");
+        this->registerVariables();
     }
 
@@ -77,4 +78,11 @@
         XMLPortParam(CommandNotification, "preMessage", setPreMessage, getPreMessage, xmlelement, mode);
         XMLPortParam(CommandNotification, "postMessage", setPostMessage, getPostMessage, xmlelement, mode);
+    }
+
+    void CommandNotification::registerVariables(void)
+    {
+        registerVariable(this->command_, VariableDirection::ToClient);
+        registerVariable(this->preMessage_, VariableDirection::ToClient);
+        registerVariable(this->postMessage_, VariableDirection::ToClient);
     }
 
Index: code/trunk/src/modules/notifications/dispatchers/CommandNotification.h
===================================================================
--- code/trunk/src/modules/notifications/dispatchers/CommandNotification.h	(revision 7463)
+++ code/trunk/src/modules/notifications/dispatchers/CommandNotification.h	(revision 7474)
@@ -38,6 +38,6 @@
 #include "notifications/NotificationsPrereqs.h"
 
+#include <string>
 #include "notifications/NotificationDispatcher.h"
-#include <string>
 
 namespace orxonox {
@@ -86,4 +86,6 @@
             std::string postMessage_; //!< The last part of the displayed message.
 
+            void registerVariables(void);
+
             /**
             @brief Set the command, whose key is displayed.
Index: code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc
===================================================================
--- code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc	(revision 7463)
+++ code/trunk/src/modules/notifications/dispatchers/SimpleNotification.cc	(revision 7474)
@@ -50,4 +50,6 @@
 
         this->setSender("simpleNotification");
+
+        this->setSyncMode(0x0);
     }
 
