Index: branches/bsp_model/src/lib/collision_reaction/cr_physics_ground_walk.cc
===================================================================
--- branches/bsp_model/src/lib/collision_reaction/cr_physics_ground_walk.cc	(revision 8693)
+++ branches/bsp_model/src/lib/collision_reaction/cr_physics_ground_walk.cc	(revision 8699)
@@ -23,4 +23,8 @@
 #include "world_entity.h"
 #include "cr_physics_ground_walk.h"
+
+#include "aabb.h"
+
+#include "debug.h"
 
 #include <vector>
@@ -56,24 +60,30 @@
   Vector normal = ce->getGroundNormal();
 
+  AABB* box = ce->getEntityB()->getModelAABB();
 
-  Vector height = ce->getCollisionPosition() - collision->getEntityB()->getAbsCoor();
-  if(ce->getGroundNormal().len() <= 0.1f)
+  Vector center = ce->getEntityB()->getAbsCoor() /*+ box->center*/;
+  Vector collisionPos = ce->getCollisionPosition() - center;
+
+  float objSize = box->halfLength[1];
+
+  if( normal.len() <= 0.1f)
   {
     collision->getEntityB()->setAbsCoor(collision->getEntityB()->getLastAbsCoor());
     return;
   }
-  if(height.y < -3.6)
+
+  if( collisionPos.y <= -(objSize + 0.1f))
   {
     downspeed++;
-    collision->getEntityB()->setAbsCoor(collision->getEntityB()->getAbsCoor() + Vector(0.0,-0.03*downspeed,0.0));
-
+    collision->getEntityB()->setAbsCoor(collision->getEntityB()->getAbsCoor() + Vector(0.0, -0.03 * downspeed, 0.0));
   }
   else
   {
-    if(height.y > -3.5  && height.y <    3.9)
+    if( collisionPos.y > -objSize  &&
+        collisionPos.y < (objSize + 0.4))
     {
       //if(downspeed <= 0) downspeed =1;
-      collision->getEntityB()->setAbsCoor(collision->getEntityB()->getAbsCoor() + Vector(0.0,height.y+3.55,0.0));
-      //collision->getEntityB()->setVelocity(Vector(0.0,0.0,0.0));
+      collision->getEntityB()->setAbsCoor(collision->getEntityB()->getAbsCoor() +
+                                          Vector(0.0, collisionPos.y + objSize + 0.1, 0.0));
     }
       downspeed = 0;
@@ -81,11 +91,4 @@
 
 
-  /*
-  PRINTF(0)("Collision with Ground: \n");
-  collision->getEntityB()->getAbsCoor().debug();
-  collision->getEntityB()->setVelocity(Vector());
-  collision->getEntityB()->setAbsCoor(this->lastPositions[1]);
-
-  */
 }
 
Index: branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc
===================================================================
--- branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc	(revision 8693)
+++ branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc	(revision 8699)
@@ -952,6 +952,20 @@
   Vector position;
   Vector out;
+  float height;
 
   if( box != NULL)
+  {
+    forwardDir = worldEntity->getAbsDirX();
+    forwardDir = forwardDir * box->halfLength[0];
+
+    upDir = Vector(0,1,0) * box->halfLength[1];
+
+    position = worldEntity->getAbsCoor() + box->center + box->axis[1] * box->halfLength[1];
+    dest     = worldEntity->getAbsCoor() + box->center - box->axis[1] * box->halfLength[1];
+    out      = dest;
+
+    height = box->halfLength[1];
+  }
+  else
   {
     forwardDir = worldEntity->getAbsDirX();
@@ -964,24 +978,9 @@
     dest;
 
-    position = worldEntity->getAbsCoor() + box->center + box->axis[1] * box->halfLength[1];
-    dest     = worldEntity->getAbsCoor() + box->center - box->axis[1] * box->halfLength[1];
-    out = dest;
-
-  }
-  else
-  {
-    forwardDir = worldEntity->getAbsDirX();
-    forwardDir = forwardDir * 8.0f;
-
-    upDir = worldEntity->getAbsDirY();
-    upDir.x = 0.0;
-    upDir.y = 1.0;
-    upDir.z = 0.0;
-    dest;
-
     position = worldEntity->getAbsCoor() + upDir*5.0f;
     dest = worldEntity->getAbsCoor() - upDir*40.0f; //
     out = dest;
 
+    height = 40;
   }
 
@@ -994,10 +993,10 @@
   Vector dest1 = position1 + forwardDir;
   Vector dest2 = position2 + forwardDir;
-  dest = position - Vector(0.0, 40.0,0.0);
+//   dest = position - Vector(0.0, 40.0,0.0);
   Vector out1;
   Vector out2;
 
 
-  float height = 40;
+
 
   this->inputStart =  position;
Index: branches/bsp_model/src/world_entities/creatures/fps_player.cc
===================================================================
--- branches/bsp_model/src/world_entities/creatures/fps_player.cc	(revision 8693)
+++ branches/bsp_model/src/world_entities/creatures/fps_player.cc	(revision 8699)
@@ -160,5 +160,5 @@
   Playable::tick( time );
 
-  if( ( xMouse != 0 || yMouse != 0 ) && /*this->getOwner() == this->getHostID()*/ true)
+  if( ( xMouse != 0 || yMouse != 0 ) /*&& this->getOwner() == this->getHostID() */)
   {
     xMouse *= time ;
@@ -246,5 +246,5 @@
 {
   // only draw if this entity is not the player since the player nevers sees himself
-//   if( this->getCurrentPlayer() == NULL)
+  if( this->getCurrentPlayer() == NULL)
     WorldEntity::draw();
 }
