Index: branches/single_player_map/src/lib/graphics/importer/bsp_file.cc
===================================================================
--- branches/single_player_map/src/lib/graphics/importer/bsp_file.cc	(revision 8896)
+++ branches/single_player_map/src/lib/graphics/importer/bsp_file.cc	(revision 8904)
@@ -46,4 +46,39 @@
 BspFile::BspFile()
 {}
+
+BspFile::~ BspFile()
+{
+  delete [] nodes;
+  delete [] leaves;
+  delete [] planes;
+  delete [] bspModels;
+  delete [] leafFaces;
+  delete [] faces;
+  delete [] leafBrushes;
+  delete [] brushes;
+  delete [] brushSides;
+  delete [] vertice;
+  delete [] meshverts;
+  delete [] visData;
+  delete [] textures;
+  delete [] patchVertice;
+  delete [] patchIndexes;
+ // delete [] patchTrianglesPerRow;
+  delete [] lightMaps;
+  
+  for(int i = 0; i < this->numPatches; ++i) delete this->VertexArrayModels[i];
+ // delete  [] VertexArrayModels;
+  
+  for(int i = 0; i < this->numTextures; ++i)
+  {
+    delete this->Materials[i].mat;
+    //delete this->Materials[i].aviMat;
+  }
+  delete [] this->Materials;
+  //delete [] testSurf;
+  
+  
+  
+}
 
 /**
@@ -294,5 +329,5 @@
     this->patchVertice = new char[8*8*44*(this->numPatches+10)];
     this->patchIndexes = new char[7*8*2*4*(this->numPatches+10)];
-    this->patchRowIndexes = new int*[7*4*this->numPatches];
+ // this->patchRowIndexes = new int*[7*4*this->numPatches]; Not needed?
     this->patchTrianglesPerRow = new char[7*4*this->numPatches];
     this->VertexArrayModels  = new VertexArrayModel*[this->numPatches];
@@ -464,5 +499,5 @@
 
     if(File(absFileName).exists()) {
-      PRINTF(0)("BSP FILE: gefunden . \n");
+      PRINTF(4)("BSP FILE: gefunden . \n");
       this->Materials[i] = this->loadAVI(fileName);
       continue;
@@ -553,5 +588,5 @@
     }
 
-    PRINTF(0)("BSP FILE: Textur %s nicht  gefunden . \n", &this->textures[8+72*i]);
+    PRINTF(0)("BSP FILE: Texture %s not found.",&this->textures[8+ 72*i] );
     //  Default Material
     this->Materials[i].mat = new Material();
@@ -1012,6 +1047,6 @@
   Face->meshvert = patchOffset -sz;  //3*(patchOffset-sz)*level1*level1;
   Face->n_meshverts = sz;
-  PRINTF(4)("BSP FILE: sz: %i. \n", sz);
-  PRINTF(4)("BSP FILE: Face->meshvert %i . \n", Face->meshvert);
+  PRINTF(0)("BSP FILE: sz: %i. \n", sz);
+  PRINTF(0)("BSP FILE: Face->meshvert %i . \n", Face->meshvert);
 
   //Face->n_meshverts = sz;
Index: branches/single_player_map/src/lib/graphics/importer/bsp_file.h
===================================================================
--- branches/single_player_map/src/lib/graphics/importer/bsp_file.h	(revision 8896)
+++ branches/single_player_map/src/lib/graphics/importer/bsp_file.h	(revision 8904)
@@ -151,4 +151,5 @@
 public:
   BspFile();
+  ~BspFile();
   int read(const char* name );
   void build_tree();
@@ -183,5 +184,5 @@
 
   int** patchRowIndexes;
-  VertexArrayModel** VertexArrayModels;
+  VertexArrayModel** VertexArrayModels; 
   int patchOffset;
 
Index: branches/single_player_map/src/lib/graphics/importer/bsp_manager.cc
===================================================================
--- branches/single_player_map/src/lib/graphics/importer/bsp_manager.cc	(revision 8896)
+++ branches/single_player_map/src/lib/graphics/importer/bsp_manager.cc	(revision 8904)
@@ -77,10 +77,19 @@
 } */
 
-void BspManager::load(const char* fileName, float scale)
+BspManager::~BspManager()
+{
+  if(this->bspFile)
+    delete this->bspFile;
+}
+ 
+int BspManager::load(const char* fileName, float scale)
 {
   // open a BSP file
+  
+  
   this->bspFile = new BspFile();
   this->bspFile->scale =  scale;
-  this->bspFile->read(ResourceManager::getFullName(fileName).c_str());
+  if(this->bspFile->read(ResourceManager::getFullName(fileName).c_str()) == -1)
+    return -1;
   this->bspFile->build_tree();
   this->root  = this->bspFile->get_root();
@@ -88,4 +97,6 @@
 
   this->outputFraction = 1.0f;
+  
+  return 0;
 }
 /*
Index: branches/single_player_map/src/lib/graphics/importer/bsp_manager.h
===================================================================
--- branches/single_player_map/src/lib/graphics/importer/bsp_manager.h	(revision 8896)
+++ branches/single_player_map/src/lib/graphics/importer/bsp_manager.h	(revision 8904)
@@ -41,4 +41,6 @@
 class WorldEntity;
 
+
+// Obsolete
 struct BspCollisionEvent
 {
@@ -54,7 +56,12 @@
 
   BspManager(const char* fileName, float scale = 0.4f);
-  void load(const char* fileName, float scale);
+  
+  // Deconstructor
+  ~BspManager();
+  
+ 
 
   // Functions
+  int load(const char* fileName, float scale);
   const void draw();
   const void tick(float time);
