Index: code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.cc	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.cc	(revision 5935)
@@ -75,16 +75,14 @@
         XMLPortObject(QuestEffectBeacon, QuestEffect, "effects", addEffect, getEffect, xmlelement, mode);
 
+        XMLPortEventState(QuestEffectBeacon, PlayerTrigger, "execute", execute, xmlelement, mode);
+
         COUT(3) << "New QuestEffectBeacon created." << std::endl;
     }
 
-    /**
-    @brief
-        Processes an event for this QuestEffectBeacon.
-    */
-    void QuestEffectBeacon::processEvent(Event& event)
-    {
-        SUPER(QuestEffectBeacon, processEvent, event);
-
-        ORXONOX_SET_SUBCLASS_EVENT(QuestEffectBeacon, "execute", execute, event, PlayerTrigger);
+    void QuestEffectBeacon::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(QuestEffectBeacon, XMLEventPort, xmlelement, mode);
+
+        XMLPortEventState(QuestEffectBeacon, PlayerTrigger, "execute", execute, xmlelement, mode);
     }
 
Index: code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.h	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestEffectBeacon.h	(revision 5935)
@@ -86,6 +86,5 @@
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML.
-
-            virtual void processEvent(Event& event); //!< Processes an event for this QuestEffectBeacon.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
 
             bool execute(bool b, PlayerTrigger* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon.
Index: code/branches/pickup/src/modules/questsystem/QuestGUI.cc
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestGUI.cc	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestGUI.cc	(revision 5935)
@@ -79,5 +79,5 @@
         
         if(this->root_ != NULL)
-            delete this->root_;
+            this->root_->destroy();
     }
 
@@ -146,5 +146,5 @@
             COUT(3) << "Clearing Node '" << *str << "' ..." << std::endl;
             delete str;
-            delete node;
+            node->destroy();
         }
         this->nodes_.clear();
Index: code/branches/pickup/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestManager.cc	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestManager.cc	(revision 5935)
@@ -41,4 +41,5 @@
 #include "core/ConsoleCommand.h"
 #include "core/LuaState.h"
+#include "core/ScopedSingletonManager.h"
 #include "infos/PlayerInfo.h"
 #include "overlays/GUIOverlay.h"
@@ -56,4 +57,5 @@
     //! Pointer to the current (and single) instance of this class.
     /*static*/ QuestManager* QuestManager::singletonPtr_s = NULL;
+    ManageScopedSingleton(QuestManager, ScopeID::Root, false);
 
     /**
@@ -76,5 +78,5 @@
         for(std::map<PlayerInfo*, QuestGUI*>::iterator it = this->questGUIs_.begin(); it != this->questGUIs_.end(); it++)
         {
-            delete (*it).second;
+            (*it).second->destroy();
         }
         this->questGUIs_.clear();
Index: code/branches/pickup/src/modules/questsystem/QuestManager.h
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestManager.h	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestManager.h	(revision 5935)
@@ -42,5 +42,5 @@
 #include <string>
 
-#include "util/ScopedSingleton.h"
+#include "util/Singleton.h"
 #include "core/OrxonoxClass.h"
 
@@ -50,7 +50,4 @@
 namespace orxonox
 {
-
-    typedef ScopedSingleton<QuestManager, ScopeID::GSLevel> ScopedSingletonQuestManagerGSLevel; // workaround for tolua
-
     /**
     @brief
@@ -60,9 +57,10 @@
         Damian 'Mozork' Frick
     */
-    class _QuestsystemExport QuestManager : public ScopedSingletonQuestManagerGSLevel, public orxonox::OrxonoxClass
-    {
+    class _QuestsystemExport QuestManager
 // tolua_end
+        : public Singleton<QuestManager>, public orxonox::OrxonoxClass
+    { // tolua_export
 
-            friend class ScopedSingleton<QuestManager, ScopeID::GSLevel>;
+            friend class Singleton<QuestManager>;
             friend class QuestGUI;
 
@@ -72,5 +70,5 @@
 
             //! Returns a reference to the single instance of the Quest Manager.
-            static QuestManager& getInstance() { return ScopedSingleton<QuestManager, ScopeID::GSLevel>::getInstance(); } // tolua_export
+            static QuestManager& getInstance() { return Singleton<QuestManager>::getInstance(); } // tolua_export
 
             //! Retreive the main window for the GUI. 
Index: code/branches/pickup/src/modules/questsystem/QuestsystemPrecompiledHeaders.h
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestsystemPrecompiledHeaders.h	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestsystemPrecompiledHeaders.h	(revision 5935)
@@ -51,6 +51,6 @@
 #include <OgreColourValue.h> // 16
 
-#include <tinyxml/ticpp.h>        // 14
-#include "util/ScopedSingleton.h" // 13
+#include <tinyxml/ticpp.h>   // 14
+#include "util/Singleton.h"  // 13
 
 ///////////////////////////////////////////
Index: code/branches/pickup/src/modules/questsystem/QuestsystemPrereqs.h
===================================================================
--- code/branches/pickup/src/modules/questsystem/QuestsystemPrereqs.h	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/QuestsystemPrereqs.h	(revision 5935)
@@ -28,6 +28,7 @@
 
 /**
-  @file
-  @brief Contains all the necessary forward declarations for all classes and structs.
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the questsystem module
 */
 
@@ -36,5 +37,4 @@
 
 #include "OrxonoxConfig.h"
-
 #include "OrxonoxPrereqs.h"
 
@@ -42,4 +42,5 @@
 // Shared library settings
 //-----------------------------------------------------------------------
+
 #if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(ORXONOX_STATIC_BUILD)
 #  ifdef QUESTSYSTEM_SHARED_BUILD
@@ -76,6 +77,6 @@
     class QuestEffect;
     class QuestEffectBeacon;
+    class QuestGUI;
     class QuestGUINode;
-    class QuestGUI;
     class QuestHint;
     class QuestItem;
@@ -83,8 +84,7 @@
     class QuestManager;
     class QuestNotification;
-    class Rewardable;
 
+    // notifications
     class Notification;
-    class NotificationListener;
     class NotificationManager;
     class NotificationOverlay;
Index: code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.cc
===================================================================
--- code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.cc	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.cc	(revision 5935)
@@ -37,4 +37,5 @@
 
 #include "core/CoreIncludes.h"
+#include "core/ScopedSingletonManager.h"
 #include "Notification.h"
 #include "interfaces/NotificationListener.h"
@@ -47,4 +48,5 @@
 
     NotificationManager* NotificationManager::singletonPtr_s = NULL;
+    ManageScopedSingleton(NotificationManager, ScopeID::Root, false);
 
     /**
Index: code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.h
===================================================================
--- code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.h	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/notifications/NotificationManager.h	(revision 5935)
@@ -41,10 +41,9 @@
 #include <string>
 
-#include "util/ScopedSingleton.h"
+#include "util/Singleton.h"
 #include "core/OrxonoxClass.h"
 
 namespace orxonox
 {
-
     /**
     @brief
@@ -54,7 +53,7 @@
         Damian 'Mozork' Frick
     */
-    class _QuestsystemExport NotificationManager : public ScopedSingleton<NotificationManager, ScopeID::GSLevel>, public OrxonoxClass
+    class _QuestsystemExport NotificationManager : public Singleton<NotificationManager>, public OrxonoxClass
     {
-            friend class ScopedSingleton<NotificationManager, ScopeID::GSLevel>;
+            friend class Singleton<NotificationManager>;
         public:
             NotificationManager();
Index: code/branches/pickup/src/modules/questsystem/notifications/NotificationQueue.cc
===================================================================
--- code/branches/pickup/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 5815)
+++ code/branches/pickup/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 5935)
@@ -426,5 +426,5 @@
         this->containers_.erase(container);
         this->overlays_.erase(container->notification);
-        delete container->overlay;
+        container->overlay->destroy();
         delete container;
         this->size_= this->size_-1;
