Index: code/branches/ogre1.9/src/libraries/core/CMakeLists.txt
===================================================================
--- code/branches/ogre1.9/src/libraries/core/CMakeLists.txt	(revision 11131)
+++ code/branches/ogre1.9/src/libraries/core/CMakeLists.txt	(revision 11132)
@@ -100,4 +100,5 @@
   LINK_LIBRARIES
     ${OGRE_LIBRARY}
+    ${OGRE_OVERLAY_LIBRARY}
     ${Boost_FILESYSTEM_LIBRARY}
     ${Boost_SYSTEM_LIBRARY} # Filesystem dependency
Index: code/branches/ogre1.9/src/libraries/core/GraphicsManager.cc
===================================================================
--- code/branches/ogre1.9/src/libraries/core/GraphicsManager.cc	(revision 11131)
+++ code/branches/ogre1.9/src/libraries/core/GraphicsManager.cc	(revision 11132)
@@ -45,4 +45,7 @@
 #include <OgreViewport.h>
 #include <OgreWindowEventUtilities.h>
+#if OGRE_VERSION >= 0x010900
+#   include <Overlay/OgreOverlaySystem.h>
+#endif
 
 #include "SpecialConfig.h"
@@ -115,4 +118,10 @@
         this->loadOgreRoot();
 
+#if OGRE_VERSION >= 0x010900
+        this->overlaySystem_ = new Ogre::OverlaySystem();
+#else
+        this->overlaySystem_ = nullptr;
+#endif
+
         // At first, add the root paths of the data directories as resource locations
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(ConfigurablePaths::getDataPathString(), "FileSystem");
@@ -155,4 +164,7 @@
         Loader::getInstance().unload(extResources_.get());
 
+#if OGRE_VERSION >= 0x010900
+        safeObjectDelete(&overlaySystem_);
+#endif
         safeObjectDelete(&ogreRoot_);
         safeObjectDelete(&ogreLogger_);
Index: code/branches/ogre1.9/src/libraries/core/GraphicsManager.h
===================================================================
--- code/branches/ogre1.9/src/libraries/core/GraphicsManager.h	(revision 11131)
+++ code/branches/ogre1.9/src/libraries/core/GraphicsManager.h	(revision 11132)
@@ -52,4 +52,5 @@
 
 #include "util/DestructionHelper.h"
+#include "util/OgreForwardRefs.h"
 #include "util/Singleton.h"
 #include "config/Configurable.h"
@@ -79,6 +80,7 @@
         void postUpdate(const Clock& time);
 
-        Ogre::Viewport* getViewport()         { return this->viewport_; }
-        Ogre::RenderWindow* getRenderWindow() { return this->renderWindow_; }
+        Ogre::Viewport* getViewport()           { return this->viewport_; }
+        Ogre::RenderWindow* getRenderWindow()   { return this->renderWindow_; }
+        Ogre::OverlaySystem* getOverlaySystem() { return this->overlaySystem_; }
         size_t getRenderWindowHandle();
 
@@ -129,4 +131,5 @@
         Ogre::RenderWindow*      renderWindow_;            //!< the one and only render window
         Ogre::Viewport*          viewport_;                //!< default full size viewport
+        Ogre::OverlaySystem*     overlaySystem_;
         GlowMaterialListener*    glowMaterialListener_;    //!< Material Listener for the 'Glow' compositor
         float                    lastFrameStartTime_;      //!< Time stamp of the beginning of the last frame
Index: code/branches/ogre1.9/src/orxonox/Scene.cc
===================================================================
--- code/branches/ogre1.9/src/orxonox/Scene.cc	(revision 11131)
+++ code/branches/ogre1.9/src/orxonox/Scene.cc	(revision 11132)
@@ -94,6 +94,5 @@
             this->sceneManager_->addRenderQueueListener(this->renderQueueListener_);//add our own renderQueueListener
 #if OGRE_VERSION >= 0x010900
-            this->overlaySystem_ = new Ogre::OverlaySystem();
-            this->sceneManager_->addRenderQueueListener(this->overlaySystem_);
+            this->sceneManager_->addRenderQueueListener(GraphicsManager::getInstance().getOverlaySystem());
 #endif
 
@@ -142,6 +141,5 @@
             {
 #if OGRE_VERSION >= 0x010900
-                this->sceneManager_->removeRenderQueueListener(this->overlaySystem_);
-                delete this->overlaySystem_;
+                this->sceneManager_->removeRenderQueueListener(GraphicsManager::getInstance().getOverlaySystem());
 #endif
                 this->sceneManager_->removeRenderQueueListener(this->renderQueueListener_);
Index: code/branches/ogre1.9/src/orxonox/Scene.h
===================================================================
--- code/branches/ogre1.9/src/orxonox/Scene.h	(revision 11131)
+++ code/branches/ogre1.9/src/orxonox/Scene.h	(revision 11132)
@@ -111,5 +111,4 @@
             Ogre::SceneNode*         rootSceneNode_; //!< This is a pointer to the root node of the Scene tree
             RenderQueueListener*     renderQueueListener_; //!< this is a pointer to the RenderQueueListener we're using for this Scene
-            Ogre::OverlaySystem*     overlaySystem_;
 
             std::string              skybox_; //!< This string holds information about the skybox we're using
