Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 3555)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 3556)
@@ -248,9 +248,9 @@
 
 	    //	    trackManager->setBindSlave(env);
-	    TrackNode* tn = TrackNode::getInstance();
+	    PNode* tn = trackManager->getTrackNode();
 	    tn->addChild(myPlayer);
 
 	    //localCamera->setParent(TrackNode::getInstance());
-	    TrackNode::getInstance()->addChild (this->localCamera);
+	    tn->addChild (this->localCamera);
 	    //Vector* cameraOffset = new Vector (0, 5, -10);
 	    Vector* cameraOffset = new Vector (-10, 5, 0);
@@ -703,6 +703,4 @@
       this->display ();
 
-      (TrackNode::getInstance()->getAbsCoor() - localPlayer->getAbsCoor()).debug();
-  
       for( int i = 0; i < 5000000; i++) {}
       /* \todo this is to slow down the program for openGl Software emulator computers, reimplement*/
Index: /orxonox/trunk/src/track_manager.cc
===================================================================
--- /orxonox/trunk/src/track_manager.cc	(revision 3555)
+++ /orxonox/trunk/src/track_manager.cc	(revision 3556)
@@ -217,5 +217,5 @@
   this->maxTime = 0;
   this->trackElemCount = 1;
-  this->bindSlave = TrackNode::getInstance();
+  this->bindSlave = this->trackNode = new TrackNode();
 }
 
@@ -701,10 +701,14 @@
 void TrackManager::setBindSlave(PNode* bindSlave)
 {
-  if (this->bindSlave == TrackNode::getInstance() || bindSlave == TrackNode::getInstance())
-    this->bindSlave = bindSlave;
-  else
-    PRINTF(2)("Already a Bindslave set that is not the TrackNode itself. Not updating\n");
-}
-
+  this->bindSlave = bindSlave;
+}
+
+/**
+   \returns the main TrackNode
+*/
+PNode* TrackManager::getTrackNode(void)
+{
+  return this->trackNode;
+}
 
 // DEBUG //
Index: /orxonox/trunk/src/track_manager.h
===================================================================
--- /orxonox/trunk/src/track_manager.h	(revision 3555)
+++ /orxonox/trunk/src/track_manager.h	(revision 3556)
@@ -115,4 +115,5 @@
   int trackElemCount;                 //!< The count of TrackElements that exist.
   PNode* bindSlave;                   //!< The node that is slave to the TrackManager. This node will be moved while update the TrackManager, and must NOT move itself.
+  PNode* trackNode;                   //!< The main TrackNode of this Track.
   
   void initChildren(unsigned int childCount);
@@ -151,4 +152,5 @@
 
   void setBindSlave(PNode* bindSlave);
+  PNode* getTrackNode(void);
 
   // DEBUG //
Index: /orxonox/trunk/src/track_node.cc
===================================================================
--- /orxonox/trunk/src/track_node.cc	(revision 3555)
+++ /orxonox/trunk/src/track_node.cc	(revision 3556)
@@ -25,13 +25,4 @@
 using namespace std;
 
-TrackNode* TrackNode::singletonRef = 0;
-
-TrackNode* TrackNode::getInstance ()
-{
-  if (!singletonRef)
-    singletonRef = new TrackNode ();
-  return singletonRef;
-}
-
 /**
    \brief standard constructor
@@ -43,9 +34,8 @@
   this->setClassName("TrackNode");
   this->setName("TrackNode"); /* absolete but still used... */
-  singletonRef = this;
 
   NullParent::getInstance()->addChild(this);
   this->trackManager = TrackManager::getInstance();
-  this->mode = ALL;
+  this->setMode(ALL);
 }
 
@@ -55,5 +45,5 @@
   this->parent = NullParent::getInstance();
   this->trackManager = TrackManager::getInstance();
-  this->mode = ALL;
+  this->setMode(ALL);
   this->absCoordinate = *absCoordinate;
 }
@@ -67,4 +57,4 @@
 TrackNode::~TrackNode () 
 {
-  singletonRef = NULL;
+
 }
Index: /orxonox/trunk/src/track_node.h
===================================================================
--- /orxonox/trunk/src/track_node.h	(revision 3555)
+++ /orxonox/trunk/src/track_node.h	(revision 3556)
@@ -20,12 +20,10 @@
 
  public:
-  static TrackNode* getInstance ();
+  TrackNode ();
+  TrackNode (Vector* absCoordinate);
+
   virtual ~TrackNode ();
 
  private:
-  TrackNode ();
-  TrackNode (Vector* absCoordinate);
-
-  static TrackNode* singletonRef;
   TrackManager* trackManager;
 
