Index: orxonox/trunk/src/lib/physics/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/physics/Makefile.in	(revision 4384)
+++ orxonox/trunk/src/lib/physics/Makefile.in	(revision 4392)
@@ -218,7 +218,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/physics/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/physics/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign  src/lib/physics/Makefile
+	  $(AUTOMAKE) --gnu  src/lib/physics/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/trunk/src/lib/physics/physics_engine.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4384)
+++ orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4392)
@@ -33,4 +33,5 @@
 
    this->connections = new tList<PhysicsConnection>;
+   this->interfaces = new tList<PhysicsInterface>;
 }
 
@@ -57,4 +58,27 @@
 {
   PhysicsEngine::singletonRef = NULL;
+}
+
+
+/**
+   \brief adds a PhysicsInterface to the list of handeled physicsInterfaces
+   \param physicsInterface the interface to add
+
+   this is normally done in the constructor of any PhysicsInterface
+*/
+void PhysicsEngine::addPhysicsInterface(PhysicsInterface* physicsInterface)
+{
+  this->interfaces->add(physicsInterface);
+}
+
+/**
+   \brief removes a PhysicsInterface from the list of handeled physicsInterfaces
+   \param physicsInterface the interface to remove
+
+   this is normally done in the destructor of any PhysicsInterface
+*/
+void PhysicsEngine::removePhysicsInterface(PhysicsInterface* physicsInterface)
+{
+  this->interfaces->remove(physicsInterface);  
 }
 
@@ -114,5 +138,6 @@
   PRINT(0)("====================================\n");
   PRINT(0)(" reference: %p\n", this);
-  PRINT(0)(" numbers of Connections: %d\n", this->connections->getSize());
+  PRINT(0)(" number of Interfaces: %d\n", this->interfaces->getSize());
+  PRINT(0)(" number of Connections: %d\n", this->connections->getSize());
 
   PRINT(0)("==============================PHYS==\n");
Index: orxonox/trunk/src/lib/physics/physics_engine.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4384)
+++ orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4392)
@@ -9,5 +9,7 @@
 
 #include "base_object.h"
+
 #include "physics_connection.h"
+#include "physics_interface.h"
 
 // Forward Declaration
@@ -22,8 +24,10 @@
   virtual ~PhysicsEngine(void);
 
+  void addPhysicsInterface(PhysicsInterface* physicsInterface);
+  void removePhysicsInterface(PhysicsInterface* physicsInterface);
+
+
   void addConnection(PhysicsConnection* connection);
   void removeConnection(PhysicsConnection* connection);
-  
-
 
   void tick(float dt);
@@ -33,7 +37,8 @@
  private:
   PhysicsEngine(void);
-  static PhysicsEngine* singletonRef;
+  static PhysicsEngine* singletonRef;      //!< the singleton reference of the PhysicsEngine
 
-  tList<PhysicsConnection>* connections;
+  tList<PhysicsInterface>* interfaces;     //!< a list of physically based objects
+  tList<PhysicsConnection>* connections;   //!< a list of physical connections
 };
 
Index: orxonox/trunk/src/lib/physics/physics_interface.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4384)
+++ orxonox/trunk/src/lib/physics/physics_interface.cc	(revision 4392)
@@ -21,4 +21,5 @@
 
 #include "physics_interface.h"
+#include "physics_engine.h"
 
 #include "field.h"
@@ -41,4 +42,6 @@
    this->massChildren = 0;
    this->forceSum = Vector(0, 0, 0);
+
+   PhysicsEngine::getInstance()->addPhysicsInterface(this);
 }
 
@@ -50,5 +53,5 @@
 PhysicsInterface::~PhysicsInterface () 
 {
-  // delete what has to be deleted here
+   PhysicsEngine::getInstance()->removePhysicsInterface(this);
 }
 
