Index: trunk/src/lib/coord/null_parent.cc
===================================================================
--- trunk/src/lib/coord/null_parent.cc	(revision 6072)
+++ trunk/src/lib/coord/null_parent.cc	(revision 6073)
@@ -33,7 +33,4 @@
   this->setName("NullParent");
 
-  while (!this->getNodesChildren().empty())
-    delete this->getNodesChildren().front();
-
   this->setParentMode(PNODE_ALL);
   NullParent::singletonRef = this;
Index: trunk/src/lib/coord/p_node.cc
===================================================================
--- trunk/src/lib/coord/p_node.cc	(revision 6072)
+++ trunk/src/lib/coord/p_node.cc	(revision 6073)
@@ -36,20 +36,9 @@
 PNode::PNode ()
 {
-  init(NULL);
+  init();
 
   NullParent::getInstance()->addChild(this);
 }
 
-/**
- * @param root the load-Element for the PNode
- */
-PNode::PNode(const TiXmlElement* root)
-{
-  this->init(NULL);
-  this->loadParams(root);
-
-  if (this->parent == NULL)
-    NullParent::getInstance()->addChild(this);
-}
 
 /**
@@ -60,5 +49,5 @@
 PNode::PNode (const Vector& absCoor, PNode* parent )
 {
-  this->init(parent);
+  this->init();
 
   if (likely(parent != NULL))
@@ -67,4 +56,5 @@
   this->setAbsCoor(absCoor);
 }
+
 
 /**
@@ -77,5 +67,5 @@
  *    (danger if you still need the children's instance somewhere else!!)
  *
- * 2. instance->remove2D(); delete instance;
+ * 2. instance->removeNode(); delete instance;
  *   -> result:
  *    moves its children to the NullParent
@@ -84,4 +74,25 @@
 PNode::~PNode ()
 {
+  // remove the Node, delete it's children (if required).
+  std::list<PNode*>::iterator tmp = this->children.begin();
+  std::list<PNode*>::iterator deleteNode;
+  while(!this->children.empty())
+    while (tmp != this->children.end())
+    {
+      deleteNode = tmp;
+      ++tmp;
+      printf("TEST::%s(%s) %s\n", (*deleteNode)->getName(), (*deleteNode)->getClassName(), this->getName());
+      if ((this->parentMode & PNODE_PROHIBIT_CHILD_DELETE) ||
+          ((*deleteNode)->parentMode & PNODE_PROHIBIT_DELETE_WITH_PARENT))
+      {
+        if (this == NullParent::getInstance() && (*deleteNode)->parentMode & PNODE_REPARENT_TO_NULLPARENT)
+          delete (*deleteNode);
+        else
+          (*deleteNode)->reparent();
+      }
+      else
+        delete (*deleteNode);
+    }
+
   if (this->parent != NULL)
    {
@@ -90,16 +101,4 @@
    }
 
-  // remove the Node, delete it's children (if required).
-  std::list<PNode*>::iterator tmp = this->children.begin();
-  std::list<PNode*>::iterator deleteNode;
-  while (tmp != this->children.end())
-  {
-    deleteNode = tmp++;
-    if ((this->parentMode & PNODE_PROHIBIT_CHILD_DELETE) || ((*deleteNode)->parentMode & PNODE_PROHIBIT_DELETE_WITH_PARENT) )
-      (*deleteNode)->reparent();
-    else
-      delete (*deleteNode);
-  }
-
   // remove all other allocated memory.
   if (this->toCoordinate != NULL)
@@ -114,5 +113,5 @@
  * @param parent the parent for this PNode
  */
-void PNode::init(PNode* parent)
+void PNode::init()
 {
   this->setClassID(CL_PARENT_NODE, "PNode");
@@ -120,5 +119,5 @@
   this->bRelCoorChanged = true;
   this->bRelDirChanged = true;
-  this->parent = parent;
+  this->parent = NULL;
   this->parentMode = PNODE_PARENT_MODE_DEFAULT;
   this->bActive = true;
Index: trunk/src/lib/coord/p_node.h
===================================================================
--- trunk/src/lib/coord/p_node.h	(revision 6072)
+++ trunk/src/lib/coord/p_node.h	(revision 6073)
@@ -73,5 +73,4 @@
  public:
   PNode ();
-  PNode(const TiXmlElement* root);
   PNode (const Vector& absCoor, PNode* pNode);
   virtual ~PNode ();
@@ -170,5 +169,5 @@
 
  private:
-  void init(PNode* parent);
+  void init();
   /** tells the child that the parent's Coordinate has changed */
   inline void parentCoorChanged () { this->bRelCoorChanged = true; }
Index: trunk/src/lib/graphics/importer/model.cc
===================================================================
--- trunk/src/lib/graphics/importer/model.cc	(revision 6072)
+++ trunk/src/lib/graphics/importer/model.cc	(revision 6073)
@@ -31,4 +31,5 @@
   this->pModelInfo.numVertices = 0;
   this->pModelInfo.numTriangles = 0;
+  this->pModelInfo.numNormals = 0;
   this->pModelInfo.numTexCoor = 0;
 
Index: trunk/src/lib/sound/sound_engine.cc
===================================================================
--- trunk/src/lib/sound/sound_engine.cc	(revision 6072)
+++ trunk/src/lib/sound/sound_engine.cc	(revision 6073)
@@ -184,5 +184,5 @@
       if (source->isPlaying())
       {
-        int play;
+        int play = 0x000;
         alGetSourcei(source->getID(), AL_SOURCE_STATE, &play);
         if(play == AL_PLAYING)
