Index: code/branches/steering/src/orxonox/controllers/Controller.h
===================================================================
--- code/branches/steering/src/orxonox/controllers/Controller.h	(revision 5979)
+++ code/branches/steering/src/orxonox/controllers/Controller.h	(revision 5981)
@@ -57,4 +57,6 @@
                 { return this->controllableEntity_; }
             virtual void changedControllableEntity() {}
+            virtual void startControl() {}
+            virtual void stopControl() {}
 
         protected:
Index: code/branches/steering/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/steering/src/orxonox/controllers/NewHumanController.cc	(revision 5979)
+++ code/branches/steering/src/orxonox/controllers/NewHumanController.cc	(revision 5981)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Michael Wirth
  *   Co-authors:
  *      ...
@@ -28,4 +28,7 @@
 
 #include "NewHumanController.h"
+
+#include "core/input/InputManager.h"
+#include "core/input/InputState.h"
 
 #include "core/CoreIncludes.h"
@@ -72,4 +75,8 @@
 
         NewHumanController::localController_s = this;
+
+        gameInputState_ = InputManager::getInstance().createInputState("humansteering", true, true);
+        gameInputState_->setMouseHandler(this);
+        gameInputState_->setMouseMode(MouseMode::Exclusive);
     }
 
@@ -77,4 +84,10 @@
     {
         NewHumanController::localController_s = 0;
+
+        if( this->isInitialized() )
+        {
+            gameInputState_->setHandler(0);
+            InputManager::getInstance().destroyState("humansteering");
+        }
     }
 
@@ -95,3 +108,21 @@
     }
 
+    void NewHumanController::startControl() {
+        //gameInputState_->setHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
+        //KeyBinderManager::getInstance().setToDefault();
+
+        InputManager::getInstance().enterState("humansteering");
+        std::cout << "started control" << endl;
+    }
+
+    void NewHumanController::stopControl() {
+        InputManager::getInstance().leaveState("humansteering");
+        std::cout << "stopped control" << endl;
+    }
+
+    void NewHumanController::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
+    {
+        std::cout << "X: " << static_cast<float>(abs.x) << " Y: " << static_cast<float>(abs.y) << endl;
+    }
+
 }
Index: code/branches/steering/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/steering/src/orxonox/controllers/NewHumanController.h	(revision 5979)
+++ code/branches/steering/src/orxonox/controllers/NewHumanController.h	(revision 5981)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Michael Wirth
  *   Co-authors:
  *      ...
@@ -32,10 +32,12 @@
 #include "OrxonoxPrereqs.h"
 
-#include "tools/interfaces/Tickable.h"
+//#include "tools/interfaces/Tickable.h"
 #include "HumanController.h"
+#include "core/input/InputHandler.h"
+#include "core/input/InputState.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport NewHumanController : public HumanController
+    class _OrxonoxExport NewHumanController : public HumanController, public InputHandler
     {
         public:
@@ -45,6 +47,13 @@
             virtual void tick(float dt);
 
+            void startControl();
+            void stopControl();
+
         private:
             static NewHumanController* localController_s;
+            InputState* gameInputState_;
+
+            //mouse handler functions
+            void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize);
     };
 }
Index: code/branches/steering/src/orxonox/infos/PlayerInfo.cc
===================================================================
--- code/branches/steering/src/orxonox/infos/PlayerInfo.cc	(revision 5979)
+++ code/branches/steering/src/orxonox/infos/PlayerInfo.cc	(revision 5981)
@@ -158,6 +158,8 @@
         this->bReadyToSpawn_ &= (!this->bSetUnreadyAfterSpawn_);
 
-        if (this->controller_)
+        if (this->controller_) {
             this->controller_->setControllableEntity(entity);
+            this->controller_->startControl();
+        }
 
         this->changedControllableEntity();
@@ -174,6 +176,8 @@
         this->controllableEntityID_ = OBJECTID_UNKNOWN;
 
-        if (this->controller_)
+        if (this->controller_) {
             this->controller_->setControllableEntity(0);
+            this->controller_->stopControl();
+        }
 
         entity->removePlayer();
