Index: branches/objectmanager/src/util/object_manager.cc
===================================================================
--- branches/objectmanager/src/util/object_manager.cc	(revision 6120)
+++ branches/objectmanager/src/util/object_manager.cc	(revision 6121)
@@ -22,4 +22,7 @@
 
 #include "shell_command.h"
+
+#include <assert.h>
+
 using namespace std;
 SHELL_COMMAND(debug, ObjectManager, debug)
@@ -37,8 +40,4 @@
 }
 
-/**
- *  the singleton reference to this class
- */
-ObjectManager* ObjectManager::singletonRef = NULL;
 
 /**
@@ -50,5 +49,4 @@
 {
   this->flush();
-  ObjectManager::singletonRef = NULL;
 }
 
@@ -78,4 +76,6 @@
 void ObjectManager::toList (WorldEntity* entity, OM_LIST omList)
 {
+  assert (omList != OM_SIZE);
+
   if (likely(entity->getOMListNumber() != OM_INIT))
     this->objectLists[entity->getOMListNumber()].erase(entity->getEntityIterator());
@@ -127,14 +127,18 @@
  * @brief print out nice debug information about Elements in the list OM_LIST
  * @param omList the List to debug.
- */
-void ObjectManager::debug(OM_LIST omList) const
+ * @param level: level 0: only show list info; level 1: also show entities and their names.
+ */
+void ObjectManager::debug(OM_LIST omList, unsigned int level) const
 {
   if (omList != OM_INIT || omList == OM_SIZE)
   {
     PRINT(0)(" +ObjectManager-LIST: '%s'-size='%d'-----\n", ObjectManager::OMListToString((OM_LIST) omList), this->objectLists[omList].size());
-    std::list<WorldEntity*>::const_iterator entity;
-    for (entity = this->objectLists[omList].begin(); entity != this->objectLists[omList].end(); entity++)
+    if (level > 1)
     {
-      PRINT(0)(" | %s::%s\n",(*entity)->getClassName(), (*entity)->getName());
+      std::list<WorldEntity*>::const_iterator entity;
+      for (entity = this->objectLists[omList].begin(); entity != this->objectLists[omList].end(); entity++)
+      {
+        PRINT(0)(" | %s::%s\n",(*entity)->getClassName(), (*entity)->getName());
+      }
     }
   }
@@ -147,11 +151,14 @@
  * @brief prints out very nice debug information
  * @param listName the Name of the list to get Debug information from
- */
-void ObjectManager::debug(const char* listName)
-{
+ * @param level: level 0: only show list info; level 1: also show entities and their names.
+ */
+void ObjectManager::debug(const char* listName, unsigned int level)
+{
+  PRINT(0)("=================================\n");
   PRINT(0)("=ObjectManager-DEBUG=============\n");
+  PRINT(0)("=================================\n");
   if (listName == NULL || listName[0] == '\0')
     for (unsigned int i = 0; i < OM_SIZE; ++i)
-      debug((OM_LIST) i);
+      debug((OM_LIST) i, level);
   else
     debug(ObjectManager::StringToOMList(listName));
@@ -198,4 +205,5 @@
     "null",
     "dead",
+    "dead-tick"
     "environ-notick",
     "environ",
Index: branches/objectmanager/src/util/object_manager.h
===================================================================
--- branches/objectmanager/src/util/object_manager.h	(revision 6120)
+++ branches/objectmanager/src/util/object_manager.h	(revision 6121)
@@ -1,6 +1,6 @@
 /*!
  * @file object_manager.h
- * @brief Definition of the ... singleton Class
-*/
+ * @brief Definition of the ObjectManager.
+ */
 
 #ifndef _OBJECT_MANAGER_H
@@ -15,4 +15,5 @@
   OM_NULL             =  0,
   OM_DEAD,
+  OM_DEAD_TICK,
   OM_ENVIRON_NOTICK,
   OM_ENVIRON,
@@ -65,11 +66,10 @@
 class WorldEntity;
 
-//! A default singleton class.
+//! A powerfull handler for the Object (WorldEntities) in the World.
 class ObjectManager : public BaseObject {
 
  public:
-  virtual ~ObjectManager(void);
-  /** @returns a Pointer to the only object of this Class */
-  inline static ObjectManager* getInstance(void) { if (!ObjectManager::singletonRef) ObjectManager::singletonRef = new ObjectManager();  return ObjectManager::singletonRef; }
+   ObjectManager();
+   virtual ~ObjectManager();
 
   void flush();
@@ -84,6 +84,6 @@
   static std::list<WorldEntity*>* distanceFromObject(const PNode& center, float radius, ClassID classID);
 
-  void debug(OM_LIST omList) const;
-  void debug(const char* listName = NULL);
+  void debug(OM_LIST omList, unsigned int level = 0) const;
+  void debug(const char* listName = NULL, unsigned int level = 0);
 
   static OM_LIST StringToOMList(const char* listName);
@@ -91,7 +91,4 @@
 
  private:
-  ObjectManager(void);
-  static ObjectManager* singletonRef;
-
   const std::list<BaseObject>*            pNodeList;
 
Index: branches/objectmanager/src/util/state.cc
===================================================================
--- branches/objectmanager/src/util/state.cc	(revision 6120)
+++ branches/objectmanager/src/util/state.cc	(revision 6121)
@@ -29,4 +29,5 @@
 const PNode* State::cameraTarget = NULL;
 
+ObjectManager* State::objectManager = NULL;
 tList<WorldEntity>* State::worldEntityList = NULL;
 
Index: branches/objectmanager/src/util/state.h
===================================================================
--- branches/objectmanager/src/util/state.h	(revision 6120)
+++ branches/objectmanager/src/util/state.h	(revision 6121)
@@ -11,5 +11,5 @@
 class WorldEntity;
 template<class T> class tList;
-//template<class T> class tStack;
+class ObjectManager;
 
 //! handles states about orxonox's most importatn objects
@@ -22,5 +22,7 @@
 
  public:
-  // CAMERA //
+   //////////////
+   /// CAMERA ///
+   //////////////
   /** @param camera the PNode to the Camera, @param cameraTarget the PNode to the Camera's target */
   static void setCamera(const PNode* camera, const PNode* cameraTarget);
@@ -30,5 +32,15 @@
   static inline const PNode* getCameraTarget() { return State::cameraTarget; };
 
-  // WORLD_ENTITY_LIST //
+  //////////////////////
+  /// OBJECT-MANAGER ///
+  //////////////////////
+  /** @param objectManager the new Current ObjectManager */
+  static inline void setObjectManager(ObjectManager* objectManager) { State::objectManager = objectManager; };
+  /** @returns the current ObjectManager. */
+  static inline ObjectManager* getObjectManager() { return State::objectManager; };
+
+  /////////////////////////
+  /// WORLD_ENTITY_LIST ///
+  /////////////////////////
   /** @param worldEntityList The World's List of WorldEntities */
   static inline void setWorldEntityList(tList<WorldEntity>* worldEntityList) { State::worldEntityList = worldEntityList; };
@@ -42,4 +54,5 @@
   static const PNode*           cameraTarget;       //!< A reference to the cameraTarget
   static PNode*                 nullParent;         //!< A reference to the Null-PNode.
+  static ObjectManager*         objectManager;      //!< A referenct to the current ObjectManager
 
   static tList<WorldEntity>*    worldEntityList;    //!< The List of the worldEntities
