Index: /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.cc
===================================================================
--- /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.cc	(revision 10238)
+++ /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.cc	(revision 10239)
@@ -22,4 +22,12 @@
 #include "util/loading/factory.h"
 #include "util/loading/load_param_xml.h"
+
+
+
+/**
+ * constructor
+ */
+OIFData::OIFData()
+{}
 
 
@@ -70,9 +78,10 @@
 
 
-
 /**
- * standard constructor
+ * constructor
+ * @param fileName name of the file
  */
 ObjectInformationFile::ObjectInformationFile()
+  : data(new OIFData())
 {
   this->init();
@@ -105,4 +114,17 @@
 
 /**
+ * the definition of the assignment operator
+ * @param oif
+ * @return
+ */
+ObjectInformationFile& ObjectInformationFile::operator=(const ObjectInformationFile& oif)
+{
+  this->init();
+  this->data = oif.data;
+
+  return *this;
+}
+
+/**
  * initizlizing function
  */
@@ -122,12 +144,4 @@
 
 
-
-ObjectInformationFile& ObjectInformationFile::operator=(const ObjectInformationFile& oif)
-{
-  this->data = oif.data;
-  return *this;
-}
-
-
 /**
  * this initializes the mount point
Index: /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.h
===================================================================
--- /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.h	(revision 10238)
+++ /branches/mount_points/src/lib/graphics/importer/oif/object_information_file.h	(revision 10239)
@@ -20,4 +20,5 @@
 
 public:
+  OIFData();
   OIFData(const std::string& fileName);
   virtual ~OIFData() {}
@@ -44,5 +45,7 @@
   ObjectInformationFile& operator=(const ObjectInformationFile& oif);
 
-//   void initMountPoint(MountPoint* mountPoint);
+  /** @returns a reference to the xml oif file */
+  inline const TiXmlElement* getMountPointDescription() { return this->data->root(); }
+
 
   private:
Index: /branches/mount_points/src/world_entities/mount_point.cc
===================================================================
--- /branches/mount_points/src/world_entities/mount_point.cc	(revision 10238)
+++ /branches/mount_points/src/world_entities/mount_point.cc	(revision 10239)
@@ -10,5 +10,5 @@
 
    ### File Specific
-   main-programmer: Patrick Boenzli patrick@orxonox.net
+   main-programmer: Patrick Boenzli, patrick@orxonox.net
    co-programmer:
 */
@@ -27,5 +27,4 @@
 
 ObjectListDefinition(MountPoint);
-CREATE_FACTORY(MountPoint);
 
 
@@ -106,10 +105,11 @@
 void MountPoint::loadParam(const TiXmlElement* root)
 {
-   LoadParam(root, "description", this, WorldEntity, setDescription)
-    .describe("Sets this mount point a description");
+  // first check for the description
+  LoadParam(root, "Description", this, MountPoint, setDescription)
+  .describe("Sets this mount point a description");
 
-
-   LoadParam(root, "OrxClass", this, WorldEntity, setOrxClass)
-    .describe("Sets the class this mount points should host");
+  // now check for the orx class to create
+  LoadParam(root, "OrxClass", this, MountPoint, setOrxClass)
+  .describe("Sets the class this mount points should host");
 }
 
@@ -134,7 +134,14 @@
 {
   // create the object for this mount point
-  this->_mount = Factory::fabricate(orxClass);
+  BaseObject* obj = Factory::fabricate(orxClass);
   // check if the object is created correctly
-  if( this->_mount == NULL)
+  if( this->_mount != NULL)
+  {
+    if( obj->isA( WorldEntity::staticClassID()))
+    {
+      this->_mount = dynamic_cast<WorldEntity*>(obj);
+    }
+  }
+  else
     PRINTF(1)("Couldn't create %s for this mount point (%s)\n", orxClass.c_str(), this->_name.c_str());
 }
@@ -149,5 +156,4 @@
 {
 
-
 }
 
@@ -158,5 +164,4 @@
 void MountPoint::draw() const
 {
-
 }
 
Index: /branches/mount_points/src/world_entities/world_entity.cc
===================================================================
--- /branches/mount_points/src/world_entities/world_entity.cc	(revision 10238)
+++ /branches/mount_points/src/world_entities/world_entity.cc	(revision 10239)
@@ -12,6 +12,7 @@
 
    ### File Specific:
-   main-programmer: Patrick Boenzli, Benjamin Grauer
-   co-programmer: Christian Meier
+   main-programmer: Patrick Boenzli
+   main-programmer: Benjamin Grauer
+   co-programmer:   Christian Meier
 */
 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
@@ -73,4 +74,6 @@
   this->scaling = 1.0f;
   this->oiFile = NULL;
+  // add 10 members to this array
+  this->mountPoints.reserve(10);
 
   /* OSOLETE */
@@ -298,5 +301,5 @@
 
     // now fill the mount point
-    this->oiFile->initMountPoint(mp);
+    mp->initMountPoint( this->oiFile->getMountPointDescription());
   }
 
@@ -364,7 +367,12 @@
 void WorldEntity::addMountPoint(int slot, MountPoint* mountPoint)
 {
-  if( this->mountPoints[slot] != NULL)
-  {
-    PRINTF(0)("adding a mount point to a slot, that already is occupied! ignoring - maybe some object do not get connected well (object: %s)\n", this->getClassCName());
+  if( this->mountPoints.capacity() < (unsigned int)slot)
+  {
+    // reserve 5 more slots than needed so this function is called as rare as possible
+    this->mountPoints.reserve(slot + 5);
+  }
+  else if( this->mountPoints[slot] != NULL)
+  {
+    PRINTF(0)("adding a mount point to a slot, that already is occupied! ignoring - maybe some object did not get connected well (object: %s)\n", this->getClassCName());
   }
 
