Index: trunk/src/lib/graphics/importer/bsp_manager.cc
===================================================================
--- trunk/src/lib/graphics/importer/bsp_manager.cc	(revision 9025)
+++ trunk/src/lib/graphics/importer/bsp_manager.cc	(revision 9061)
@@ -972,7 +972,11 @@
   Vector position1 = position;
   Vector position2 = position + Vector(0.0,1.0,0.0);
+  Vector position3 = position;
+  Vector position4 = position + Vector(0.0,1.0,0.0);
   Vector dest = worldEntity->getAbsCoor() - upDir*40.0f; //
   Vector dest1 = position + forwardDir*4.0f;
   Vector dest2 = position2 + forwardDir*4.0;
+  Vector dest3 = position + forwardDir*4.0f;
+  Vector dest4 = position2 + forwardDir*4.0;
   dest = position - Vector(0.0, 40.0,0.0);
   Vector out = dest;
@@ -986,13 +990,17 @@
 
   if( box != NULL) {
-    position = worldEntity->getAbsCoor() +  box->center + Vector(0.0, 1.0, 0.0) * box->halfLength[1];
-    dest     = worldEntity->getAbsCoor() +  box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET);
-
-    position1 = worldEntity->getAbsCoor() +  box->center - worldEntity->getAbsDirX() * (box->halfLength[0]  + BSP_X_OFFSET);
-    dest1     = worldEntity->getAbsCoor() +  box->center + worldEntity->getAbsDirX() * (box->halfLength[0]  + BSP_X_OFFSET);
-
-    position2 = worldEntity->getAbsCoor() +  box->center - worldEntity->getAbsDirZ() * (box->halfLength[2]  + BSP_Z_OFFSET);
-    dest2     = worldEntity->getAbsCoor() +  box->center + worldEntity->getAbsDirZ() * (box->halfLength[2]  + BSP_Z_OFFSET);
-
+    position = worldEntity->getAbsCoor() +  box->center; // + Vector(0.0, 1.0, 0.0) * box->halfLength[1] * 1.0f;
+    dest     = worldEntity->getAbsCoor() +  box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET) *   100;
+
+    Vector dirX =  worldEntity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize();
+
+    //position1 = worldEntity->getAbsCoor() +  box->center - dirX * (box->halfLength[0]  + BSP_X_OFFSET);
+    dest1     = worldEntity->getAbsCoor() +  box->center + dirX * (box->halfLength[0]  + BSP_X_OFFSET);
+    dest2     = worldEntity->getAbsCoor() -  box->center + dirX * (box->halfLength[0]  + BSP_X_OFFSET);
+    
+    Vector dirZ =  worldEntity->getAbsDirZ(); dirX.y = 0.0f; dirZ.normalize();
+    //position2 = worldEntity->getAbsCoor() +  box->center - dirZ * (box->halfLength[2]  + BSP_Z_OFFSET);
+    dest3     = worldEntity->getAbsCoor() +  box->center + dirZ * (box->halfLength[2]  + BSP_Z_OFFSET);
+    dest4     = worldEntity->getAbsCoor() -  box->center + dirZ * (box->halfLength[2]  + BSP_Z_OFFSET);
   } else {
     // Init positions and destinations to anything useful!
@@ -1052,4 +1060,7 @@
   bool xCollision = false;
   bool zCollision = false;
+  bool xCollisionNeg = false;
+  bool zCollisionNeg = false;
+  
 
 
@@ -1120,9 +1131,10 @@
   // Return the normal here: Normal's stored in this->collPlane;
   if( collision) {
-    worldEntity->registerCollision(COLLISION_TYPE_AXIS_Y , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag);
+    worldEntity->registerCollision(COLLISION_TYPE_AXIS_Y_NEG , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag);
 }
   if(xCollision) {
     worldEntity->registerCollision(COLLISION_TYPE_AXIS_X , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z),dest1 , SolidFlag);
   }
+  
   if(zCollision) {
     worldEntity->registerCollision(COLLISION_TYPE_AXIS_Z , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), dest2 , SolidFlag);
Index: trunk/src/lib/graphics/importer/bsp_manager.h
===================================================================
--- trunk/src/lib/graphics/importer/bsp_manager.h	(revision 9025)
+++ trunk/src/lib/graphics/importer/bsp_manager.h	(revision 9061)
@@ -28,7 +28,7 @@
 
 
-#define BSP_X_OFFSET 20.0f
+#define BSP_X_OFFSET 40.0f
 #define BSP_Y_OFFSET 40.0f
-#define BSP_Z_OFFSET 20.0f
+#define BSP_Z_OFFSET 40.0f
 
 
Index: trunk/src/lib/graphics/text_engine/font_data.cc
===================================================================
--- trunk/src/lib/graphics/text_engine/font_data.cc	(revision 9025)
+++ trunk/src/lib/graphics/text_engine/font_data.cc	(revision 9061)
@@ -279,5 +279,5 @@
     Glyph* tmpGlyph;
 
-    if (tmpGlyph = this->glyphArray[i])
+    if ((tmpGlyph = this->glyphArray[i]) != NULL)
     {
       if (tmpGlyph->height*this->renderSize > maxLineHeight)
