Index: code/branches/gameimmersion/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/controllers/HumanController.cc	(revision 8101)
+++ code/branches/gameimmersion/src/orxonox/controllers/HumanController.cc	(revision 8379)
@@ -42,4 +42,5 @@
     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,5 +52,5 @@
     SetConsoleCommand("HumanController", __CC_fire_name,           &HumanController::fire          ).addShortcut().keybindMode(KeybindMode::OnHold);
     SetConsoleCommand("HumanController", "reload",                 &HumanController::reload        ).addShortcut();
-    SetConsoleCommand("HumanController", "boost",                  &HumanController::boost         ).addShortcut().keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand("HumanController", __CC_boost_name,          &HumanController::toggleBoost   ).addShortcut().keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("HumanController", "greet",                  &HumanController::greet         ).addShortcut();
     SetConsoleCommand("HumanController", "switchCamera",           &HumanController::switchCamera  ).addShortcut();
@@ -72,4 +73,5 @@
 
         controlPaused_ = false;
+        this->boosting_ = false;
 
         HumanController::localController_s = this;
@@ -163,8 +165,30 @@
     }
 
-    void HumanController::boost()
-    {
-        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
-            HumanController::localController_s->controllableEntity_->boost();
+    /**
+    @brief
+        Static method,toggles boosting.
+    */
+    /*static*/ void HumanController::toggleBoost()
+    {
+        if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
+            HumanController::localController_s->toggleBoosting();
+    }
+    
+    /**
+    @brief
+        Toggles the boosting mode.
+        Changes the keybind mode of the boost console command and tells the ControllableEntity to boost (or not boost anymore).
+    */
+    void HumanController::toggleBoosting(void)
+    {
+        this->boosting_ = !this->boosting_;
+        
+        // The keybind mode of the boosting console command is onRelease if in boosting mode and onPress of not in boosting mode.
+        if(this->boosting_)
+            ModifyConsoleCommand(__CC_boost_name).keybindMode(KeybindMode::OnRelease);
+        else
+            ModifyConsoleCommand(__CC_boost_name).keybindMode(KeybindMode::OnPress);
+
+        this->controllableEntity_->boost(this->boosting_);
     }
 
Index: code/branches/gameimmersion/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/gameimmersion/src/orxonox/controllers/HumanController.h	(revision 8101)
+++ code/branches/gameimmersion/src/orxonox/controllers/HumanController.h	(revision 8379)
@@ -64,5 +64,13 @@
             static void reload();
 
-            static void boost();
+            static void toggleBoost(); // Static method,toggles 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 toggleBoosting(void); // Toggles the boosting mode.
+            
             static void greet();
             static void switchCamera();
@@ -92,4 +100,8 @@
             static HumanController* localController_s;
             bool controlPaused_;
+        
+        private:
+            bool boosting_; // Whether the HumanController is in boosting mode or not.
+
     }; // tolua_export
 } // tolua_export
