Index: code/trunk/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/HumanController.cc	(revision 9939)
+++ code/trunk/src/orxonox/controllers/HumanController.cc	(revision 9979)
@@ -42,5 +42,4 @@
     extern const std::string __CC_fire_name = "fire";
     extern const std::string __CC_suicide_name = "suicide";
-    const std::string __CC_boost_name = "boost";
 
     SetConsoleCommand("HumanController", "moveFrontBack",          &HumanController::moveFrontBack ).addShortcut().setAsInputCommand();
@@ -51,8 +50,8 @@
     SetConsoleCommand("HumanController", "rotateRoll",             &HumanController::rotateRoll    ).addShortcut().setAsInputCommand();
     SetConsoleCommand("HumanController", "toggleFormationFlight",  &HumanController::toggleFormationFlight).addShortcut().keybindMode(KeybindMode::OnPress);
-    SetConsoleCommand("HumanController", "FFChangeMode",  &HumanController::FFChangeMode).addShortcut().keybindMode(KeybindMode::OnPress);
+    SetConsoleCommand("HumanController", "FFChangeMode",           &HumanController::FFChangeMode).addShortcut().keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("HumanController", __CC_fire_name,           &HumanController::fire          ).addShortcut().keybindMode(KeybindMode::OnHold);
     SetConsoleCommand("HumanController", "reload",                 &HumanController::reload        ).addShortcut();
-    SetConsoleCommand("HumanController", __CC_boost_name,          &HumanController::keepBoost     ).addShortcut().keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand("HumanController", "boost",                  &HumanController::boost         ).addShortcut().setAsInputCommand().keybindMode(KeybindMode::OnPressAndRelease);
     SetConsoleCommand("HumanController", "greet",                  &HumanController::greet         ).addShortcut();
     SetConsoleCommand("HumanController", "switchCamera",           &HumanController::switchCamera  ).addShortcut();
@@ -69,5 +68,4 @@
 
     HumanController* HumanController::localController_s = 0;
-    /*static*/ const float HumanController::BOOSTING_TIME = 0.1f;
 
     HumanController::HumanController(Context* context) : FormationController(context)
@@ -76,9 +74,5 @@
 
         this->controlPaused_ = false;
-        this->boosting_ = false;
-        this->boosting_ = false;
         HumanController::localController_s = this;
-        this->boostingTimeout_.setTimer(HumanController::BOOSTING_TIME, false, createExecutor(createFunctor(&HumanController::terminateBoosting, this)));
-        this->boostingTimeout_.stopTimer();
     }
 
@@ -190,45 +184,37 @@
     /**
     @brief
-        Static method,keeps boosting.
-    */
-    /*static*/ void HumanController::keepBoost()
-    {
-        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
-            HumanController::localController_s->keepBoosting();
-    }
-
-    /**
-    @brief
-        Starts, or keeps the boosting mode.
+        Static method, controls boosting.
+    */
+    /*static*/ void HumanController::boost(const Vector2& value)
+    {
+        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
+        {
+            float abs = value.x;
+            if (abs > 0)
+                HumanController::localController_s->startBoosting();
+            else
+                HumanController::localController_s->stopBoosting();
+        }
+    }
+
+    /**
+    @brief
+        Starts the boosting mode.
         Resets the boosting timeout and ells the ControllableEntity to boost (or not boost anymore).
     */
-    void HumanController::keepBoosting(void)
-    {
-        if(this->boostingTimeout_.isActive())
-        {
-            this->boostingTimeout_.stopTimer();
-            this->boostingTimeout_.startTimer();
-        }
-        else
-        {
-            this->boosting_ = true;
-            this->boostingTimeout_.startTimer();
-            if(this->controllableEntity_)
-                this->controllableEntity_->boost(this->boosting_);
-//            orxout() << "Start boosting" << endl;
-        }
-    }
-
-    /**
-    @brief
-        Terminates the boosting mode.
-    */
-    void HumanController::terminateBoosting(void)
-    {
-        this->boosting_ = false;
-        this->boostingTimeout_.stopTimer();
+    void HumanController::startBoosting(void)
+    {
         if(this->controllableEntity_)
-            this->controllableEntity_->boost(this->boosting_);
-//        orxout() << "Stop boosting" << endl;
+            this->controllableEntity_->boost(true);
+    }
+
+    /**
+    @brief
+        Stops the boosting mode.
+    */
+    void HumanController::stopBoosting(void)
+    {
+        if(this->controllableEntity_)
+            this->controllableEntity_->boost(false);
     }
 
Index: code/trunk/src/orxonox/controllers/HumanController.h
===================================================================
--- code/trunk/src/orxonox/controllers/HumanController.h	(revision 9939)
+++ code/trunk/src/orxonox/controllers/HumanController.h	(revision 9979)
@@ -65,13 +65,7 @@
             static void reload();
 
-            static void keepBoost(); // Static method, keeps boosting.
-            /**
-            @brief Check whether the HumanController is in boosting mode.
-            @return Returns true if it is, false if not.
-            */
-            inline bool isBoosting(void)
-                { return this->boosting_; }
-            void keepBoosting(void);
-            void terminateBoosting(void);
+            static void boost(const Vector2& value); // Static method, controls boosting.
+            void startBoosting(void);
+            void stopBoosting(void);
 
 
@@ -107,9 +101,4 @@
             bool controlPaused_;
 
-        private:
-            bool boosting_; // Whether the HumanController is in boosting mode or not.
-            Timer boostingTimeout_; // A timer to check whether the player is no longer boosting.
-            static const float BOOSTING_TIME; // The time after it is checked, whether the player is no longer boosting.
-
     }; // tolua_export
 } // tolua_export
