Index: /orxonox/trunk/src/defs/debug.h
===================================================================
--- /orxonox/trunk/src/defs/debug.h	(revision 3595)
+++ /orxonox/trunk/src/defs/debug.h	(revision 3596)
@@ -47,5 +47,5 @@
 #define DEBUG_MODULE_ORXONOX            0
 #define DEBUG_MODULE_WORLD              0
-#define DEBUG_MODULE_PNODE              0
+#define DEBUG_MODULE_PNODE              3
 #define DEBUG_MODULE_WORLD_ENTITY       0
 #define DEBUG_MODULE_COMMAND_NODE       0
Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 3595)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 3596)
@@ -239,5 +239,5 @@
 	    Vector* cameraOffset = new Vector (-10, 5, 0);
 	    this->localCamera->setRelCoor (cameraOffset);
-	    trackManager->condition(2, NEAREST, this->localPlayer);
+	    trackManager->condition(2, LEFTRIGHT, this->localPlayer);
 
 	    break;
Index: /orxonox/trunk/src/track_manager.cc
===================================================================
--- /orxonox/trunk/src/track_manager.cc	(revision 3595)
+++ /orxonox/trunk/src/track_manager.cc	(revision 3596)
@@ -42,4 +42,5 @@
   this->endTime = 1;
   this->jumpTime = 0;
+  this->width = TMAN_DEFAULT_WIDTH;
   this->nodeCount = 0;
   this->childCount = 0;
@@ -760,4 +761,12 @@
 
 /**
+   \returns the current Width of the track
+*/
+float TrackManager::getWidth(void) const
+{
+  return this->currentTrackElem->width;
+}
+
+/**
    \brief Advances the local-time of the Track around dt
    \param dt The time about which to advance.
Index: /orxonox/trunk/src/track_manager.h
===================================================================
--- /orxonox/trunk/src/track_manager.h	(revision 3595)
+++ /orxonox/trunk/src/track_manager.h	(revision 3596)
@@ -22,5 +22,5 @@
 #define TMAN_DEFAULT_CURVETYPE BEZIERCURVE
 #define TMAN_DEFAULT_DURATION 10
-
+#define TMAN_DEFAULT_WIDTH    10
 
 //! A Graph-Element, that holds the curve-structure of a Level.
@@ -54,4 +54,5 @@
   float endTime;             //!< The time at which this Track ends.
   float jumpTime;            //!< The Time this Track has to jump to its preceding Track (only >0 if Track isJoined==true)
+  float width;               //!< Th width of the Path. This tells the Player(s), how far he(they) can go to the left/right.
   int nodeCount;             //!< The count of points this TrackElement has.
   Curve* curve;              //!< The Curve of this TrackElement
@@ -166,4 +167,5 @@
   inline Vector calcPos(void) const;
   inline Vector calcDir(void) const;
+  float getWidth(void) const;
   void tick(float dt);
   void jumpTo(float time);
Index: /orxonox/trunk/src/world_entities/player.cc
===================================================================
--- /orxonox/trunk/src/world_entities/player.cc	(revision 3595)
+++ /orxonox/trunk/src/world_entities/player.cc	(revision 3596)
@@ -19,4 +19,5 @@
 
 #include "player.h"
+
 #include "stdincl.h"
 //#include "collision.h"
@@ -24,4 +25,5 @@
 #include "list.h"
 #include "weapon.h"
+#include "track_manager.h"
 
 using namespace std;
@@ -169,9 +171,13 @@
   //orthDirection = orthDirection.cross (direction);
 
-  if( this->bUp) { accel = accel+(direction*acceleration); }
-  if( this->bDown) { accel = accel-(direction*acceleration); }
-  if( this->bLeft ) { accel = accel - (orthDirection*acceleration); }
-  if( this->bRight ) { accel = accel + (orthDirection*acceleration); }
-  if( this->bAscend ) { /* not yet implemented but just: (0,0,1)*acceleration */}
+  if( this->bUp && this->getRelCoor().x < 20)
+    accel = accel+(direction*acceleration);
+  if( this->bDown && this->getRelCoor().x > -5)
+    accel = accel-(direction*acceleration);
+  if( this->bLeft &&  TrackManager::getInstance()->getWidth() > -this->getRelCoor().z*2)
+    accel = accel - (orthDirection*acceleration); 
+  if( this->bRight &&  TrackManager::getInstance()->getWidth() > this->getRelCoor().z*2)
+    accel = accel + (orthDirection*acceleration);
+  if( this->bAscend )
   if( this->bDescend) {/* FIXME */} /* \todo up and down player movement */
 
