Index: code/branches/core5/src/modules/gamestates/GSLevel.cc
===================================================================
--- code/branches/core5/src/modules/gamestates/GSLevel.cc	(revision 5812)
+++ code/branches/core5/src/modules/gamestates/GSLevel.cc	(revision 5813)
@@ -48,5 +48,4 @@
 
 #include "tools/interfaces/Tickable.h"
-#include "Radar.h"
 #include "CameraManager.h"
 #include "LevelManager.h"
@@ -67,5 +66,4 @@
         , guiMouseOnlyInputState_(0)
         , guiKeysOnlyInputState_(0)
-        , radar_(0)
         , cameraManager_(0)
     {
@@ -104,7 +102,4 @@
             // create the global CameraManager
             this->cameraManager_ = new CameraManager(GraphicsManager::getInstance().getViewport());
-
-            // Start the Radar
-            this->radar_ = new Radar();
         }
 
@@ -186,10 +181,4 @@
         if (GameMode::isMaster())
             this->unloadLevel();
-
-        if (this->radar_)
-        {
-            this->radar_->destroy();
-            this->radar_ = 0;
-        }
 
         if (this->cameraManager_)
Index: code/branches/core5/src/modules/gamestates/GSLevel.h
===================================================================
--- code/branches/core5/src/modules/gamestates/GSLevel.h	(revision 5812)
+++ code/branches/core5/src/modules/gamestates/GSLevel.h	(revision 5813)
@@ -67,5 +67,4 @@
         InputState*              guiMouseOnlyInputState_;  //!< input state if we only need the mouse to use the GUI
         InputState*              guiKeysOnlyInputState_;   //!< input state if we only need the keys to use the GUI
-        Radar*                   radar_;                   //!< represents the Radar (not the HUD part)
         CameraManager*           cameraManager_;           //!< camera manager for this level
         PlayerManager*           playerManager_;           //!< player manager for this level
Index: code/branches/core5/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/core5/src/modules/overlays/hud/HUDNavigation.cc	(revision 5812)
+++ code/branches/core5/src/modules/overlays/hud/HUDNavigation.cc	(revision 5813)
@@ -39,4 +39,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "Scene.h"
 #include "Radar.h"
 
@@ -130,5 +131,8 @@
         SUPER(HUDNavigation, tick, dt);
 
-        if (!Radar::getInstance().getFocus())
+        // Get radar
+        Radar* radar = this->getOwner()->getScene()->getRadar();
+
+        if (!radar->getFocus())
         {
             this->overlay_->hide();
@@ -150,5 +154,5 @@
 */
         // transform to screen coordinates
-        Vector3 pos = /*transformationMatrix * */Radar::getInstance().getFocus()->getRVWorldPosition();
+        Vector3 pos = /*transformationMatrix * */radar->getFocus()->getRVWorldPosition();
 
         bool outOfView;
Index: code/branches/core5/src/orxonox/Radar.cc
===================================================================
--- code/branches/core5/src/orxonox/Radar.cc	(revision 5812)
+++ code/branches/core5/src/orxonox/Radar.cc	(revision 5813)
@@ -43,8 +43,4 @@
 namespace orxonox
 {
-    SetConsoleCommand(Radar, cycleNavigationFocus, true).accessLevel(AccessLevel::User);
-    SetConsoleCommand(Radar, releaseNavigationFocus, true).accessLevel(AccessLevel::User);
-
-    Radar* Radar::instance_s = 0;
 
     Radar::Radar()
@@ -52,7 +48,4 @@
         , objectTypeCounter_(0)
     {
-        assert(instance_s == 0);
-        instance_s = this;
-
         // TODO: make this mapping configurable. Maybe there's a possibility with self configured
         //       configValues..
@@ -79,5 +72,4 @@
     Radar::~Radar()
     {
-        instance_s = 0;
     }
 
@@ -194,26 +186,3 @@
         }
     }
-
-
-    /*static*/ Radar& Radar::getInstance()
-    {
-        assert(instance_s);
-        return *instance_s;
-    }
-
-    /*static*/ void Radar::cycleNavigationFocus()
-    {
-        // avoid using getInstance because of the assert().
-        // User might call this fuction even if HUDNavigation doesn't exist.
-        if (instance_s)
-            instance_s->cycleFocus();
-    }
-
-    /*static*/ void Radar::releaseNavigationFocus()
-    {
-        // avoid using getInstance because of the assert().
-        // User might call this fuction even if HUDNavigation doesn't exist.
-        if (instance_s)
-            instance_s->releaseFocus();
-    }
 }
Index: code/branches/core5/src/orxonox/Radar.h
===================================================================
--- code/branches/core5/src/orxonox/Radar.h	(revision 5812)
+++ code/branches/core5/src/orxonox/Radar.h	(revision 5813)
@@ -46,19 +46,9 @@
 namespace orxonox
 {
-    /**
-    @brief This class merely ensures that no one can inherit from Radar.
-    */
-    class _OrxonoxExport RadarBase
-    {
-    private:
-        friend class Radar;
-        RadarBase() { }
-    };
-
-    class _OrxonoxExport Radar : public Tickable, private virtual RadarBase
+    class _OrxonoxExport Radar : public Tickable
     {
     public:
         Radar();
-        ~Radar();
+        virtual ~Radar();
 
         virtual void tick(float dt);
@@ -69,16 +59,11 @@
         void listObjects() const;
 
-        static Radar& getInstance();
-        static Radar* getInstancePtr() { return instance_s; }
-
-        static void cycleNavigationFocus();
-        static void releaseNavigationFocus();
+        void releaseFocus();
+        void cycleFocus();
 
     private:
         Radar(Radar& instance);
 
-        void releaseFocus();
         void updateFocus();
-        void cycleFocus();
 
         ObjectListIterator<RadarViewable> itFocus_;
@@ -86,6 +71,4 @@
         std::map<std::string, RadarViewable::Shape> objectTypes_;
         int objectTypeCounter_;
-
-        static Radar* instance_s;
     };
 }
Index: code/branches/core5/src/orxonox/Scene.cc
===================================================================
--- code/branches/core5/src/orxonox/Scene.cc	(revision 5812)
+++ code/branches/core5/src/orxonox/Scene.cc	(revision 5813)
@@ -44,4 +44,5 @@
 #include "core/XMLPort.h"
 #include "tools/BulletConversions.h"
+#include "Radar.h"
 #include "worldentities/WorldEntity.h"
 
@@ -62,4 +63,6 @@
             this->sceneManager_ = Ogre::Root::getSingleton().createSceneManager(Ogre::ST_GENERIC);
             this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
+
+            this->radar_ = new Radar();
         }
         else
@@ -68,4 +71,6 @@
             this->sceneManager_ = new Ogre::DefaultSceneManager("");
             this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();
+
+            this->radar_ = 0;
         }
 
@@ -92,4 +97,7 @@
             else
                 delete this->sceneManager_;
+
+            if (this->radar_)
+                this->radar_->destroy();
 
             this->setPhysicalWorld(false);
Index: code/branches/core5/src/orxonox/Scene.h
===================================================================
--- code/branches/core5/src/orxonox/Scene.h	(revision 5812)
+++ code/branches/core5/src/orxonox/Scene.h	(revision 5813)
@@ -71,4 +71,7 @@
                 { return this->bShadows_; }
 
+            inline Radar* getRadar()
+                { return this->radar_; }
+
             virtual void tick(float dt);
 
@@ -91,4 +94,5 @@
             std::list<BaseObject*>   objects_;
             bool                     bShadows_;
+            Radar*                   radar_;
 
 
Index: code/branches/core5/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/core5/src/orxonox/controllers/HumanController.cc	(revision 5812)
+++ code/branches/core5/src/orxonox/controllers/HumanController.cc	(revision 5813)
@@ -36,4 +36,6 @@
 #include "infos/PlayerInfo.h"
 #include "overlays/Map.h"
+#include "Radar.h"
+#include "Scene.h"
 
 namespace orxonox
@@ -56,4 +58,6 @@
     SetConsoleCommand(HumanController, dropItems,     true);
     SetConsoleCommand(HumanController, useItem,       true);
+    SetConsoleCommand(HumanController, cycleNavigationFocus,   true);
+    SetConsoleCommand(HumanController, releaseNavigationFocus, true);
 
     CreateUnloadableFactory(HumanController);
@@ -200,3 +204,15 @@
             return NULL;
     }
+
+    void HumanController::cycleNavigationFocus()
+    {
+        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
+            HumanController::localController_s->controllableEntity_->getScene()->getRadar()->cycleFocus();
+    }
+
+    void HumanController::releaseNavigationFocus()
+    {
+        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
+            HumanController::localController_s->controllableEntity_->getScene()->getRadar()->releaseFocus();
+    }
 }
Index: code/branches/core5/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/core5/src/orxonox/controllers/HumanController.h	(revision 5812)
+++ code/branches/core5/src/orxonox/controllers/HumanController.h	(revision 5813)
@@ -58,4 +58,6 @@
             static void dropItems();
             static void useItem();
+            static void cycleNavigationFocus();
+            static void releaseNavigationFocus();
 
             static void suicide();
Index: code/branches/core5/src/orxonox/interfaces/RadarViewable.cc
===================================================================
--- code/branches/core5/src/orxonox/interfaces/RadarViewable.cc	(revision 5812)
+++ code/branches/core5/src/orxonox/interfaces/RadarViewable.cc	(revision 5813)
@@ -38,4 +38,5 @@
 #include "worldentities/WorldEntity.h"
 #include "Radar.h"
+#include "Scene.h"
 #include "overlays/Map.h"
 
@@ -135,5 +136,5 @@
     void RadarViewable::setRadarObjectDescription(const std::string& str)
     {
-        Radar* radar = Radar::getInstancePtr();
+        Radar* radar = this->getWorldEntity()->getScene()->getRadar();
         if (radar)
             this->radarObjectShape_ = radar->addObjectDescription(str);
