Index: code/branches/presentation2/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/presentation2/src/orxonox/controllers/HumanController.cc	(revision 6144)
+++ code/branches/presentation2/src/orxonox/controllers/HumanController.cc	(revision 6149)
@@ -95,5 +95,5 @@
     }
 
-    void HumanController::moveFrontBack(const Vector2& value)
+    void HumanController::frontback(const Vector2& value)
     {
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
Index: code/branches/presentation2/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/presentation2/src/orxonox/controllers/HumanController.h	(revision 6144)
+++ code/branches/presentation2/src/orxonox/controllers/HumanController.h	(revision 6149)
@@ -45,5 +45,5 @@
             virtual void tick(float dt);
 
-            static void moveFrontBack(const Vector2& value);
+            static void moveFrontBack(const Vector2& value){ HumanController::localController_s->frontback(value); }
             static void moveRightLeft(const Vector2& value);
             static void moveUpDown(const Vector2& value);
@@ -52,5 +52,6 @@
             static void rotatePitch(const Vector2& value){ HumanController::localController_s->pitch(value); }
             static void rotateRoll(const Vector2& value);
-            
+
+            virtual void frontback(const Vector2& value);
             virtual void yaw(const Vector2& value);
             virtual void pitch(const Vector2& value);
Index: code/branches/presentation2/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/presentation2/src/orxonox/controllers/NewHumanController.cc	(revision 6144)
+++ code/branches/presentation2/src/orxonox/controllers/NewHumanController.cc	(revision 6149)
@@ -47,4 +47,6 @@
 {
     SetConsoleCommand(NewHumanController, changeMode,          false).keybindMode(KeybindMode::OnPress);
+    SetConsoleCommand(NewHumanController, accelerate,          false).keybindMode(KeybindMode::OnPress);
+    SetConsoleCommand(NewHumanController, decelerate,          false).keybindMode(KeybindMode::OnPress);
 
     CreateUnloadableFactory(NewHumanController);
@@ -60,4 +62,8 @@
         overlaySize_ = 0.08;
         controlMode_ = 0;
+        acceleration_ = 0;
+
+        //currentPitch_ = 1;
+        //currentYaw_ = 1;
 
         if (GameMode::showsGraphics())
@@ -98,4 +104,7 @@
                 this->crossHairOverlay_->hide();
             // TODO: update aimPosition of Pawn
+
+            if ( this->acceleration_ > 0 )
+                HumanController::moveFrontBack(Vector2(clamp(this->acceleration_ + this->currentAcceleration_, 0.0f, 1.0f), 0));
         }
 
@@ -230,4 +239,12 @@
     }
 
+    void NewHumanController::frontback(const Vector2& value)
+    {
+        this->currentAcceleration_ = value.x;
+
+        if (this->acceleration_ == 0)
+            HumanController::frontback(value);
+    }
+
     void NewHumanController::yaw(const Vector2& value)
     {
@@ -248,5 +265,6 @@
     }
 
-    void NewHumanController::changeMode() {
+    void NewHumanController::changeMode()
+    {
         if (NewHumanController::localController_s && NewHumanController::localController_s->controlMode_ == 0)
         {
@@ -264,3 +282,18 @@
         this->currentPitch_ = 0;
     }
+
+    void NewHumanController::accelerate()
+    {
+        if ( NewHumanController::localController_s ) {
+            NewHumanController::localController_s->acceleration_ += 0.08;
+            NewHumanController::localController_s->acceleration_ = clamp(NewHumanController::localController_s->acceleration_ + 0.08f, 0.0f, 1.0f);
+        }
+    }
+
+    void NewHumanController::decelerate()
+    {
+        if ( NewHumanController::localController_s ) {
+            NewHumanController::localController_s->acceleration_ = clamp(NewHumanController::localController_s->acceleration_ - 0.05f, 0.0f, 1.0f);
+        }
+    }
 }
Index: code/branches/presentation2/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/presentation2/src/orxonox/controllers/NewHumanController.h	(revision 6144)
+++ code/branches/presentation2/src/orxonox/controllers/NewHumanController.h	(revision 6149)
@@ -32,4 +32,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include "util/Math.h"
+
 #include "core/ClassTreeMask.h"
 #include "HumanController.h"
@@ -45,16 +47,20 @@
             virtual void tick(float dt);
 
+            virtual void frontback(const Vector2& value);
             virtual void yaw(const Vector2& value);
             virtual void pitch(const Vector2& value);
+
+            static void accelerate();
+            static void decelerate();
 
             virtual void doFire(unsigned int firemode);
 
             static void changeMode();
-            
+
             virtual void changedControllableEntity();
 
         protected:
             void updateTarget();
-            
+
             unsigned int                controlMode_;
             static NewHumanController*  localController_s;
@@ -64,4 +70,6 @@
             OrxonoxOverlay*             crossHairOverlay_;
             float                       overlaySize_;
+            float                       currentAcceleration_;
+            float                       acceleration_;
             ClassTreeMask               targetMask_;
     };
