Index: /trunk/src/lib/Makefile.am
===================================================================
--- /trunk/src/lib/Makefile.am	(revision 5388)
+++ /trunk/src/lib/Makefile.am	(revision 5389)
@@ -52,4 +52,5 @@
                         util/array.h \
                         util/list.h \
+                        util/t_stack.h \
                         util/color.h \
                         util/helper_functions.h \
Index: /trunk/src/lib/Makefile.in
===================================================================
--- /trunk/src/lib/Makefile.in	(revision 5388)
+++ /trunk/src/lib/Makefile.in	(revision 5389)
@@ -245,4 +245,5 @@
                         util/array.h \
                         util/list.h \
+                        util/t_stack.h \
                         util/color.h \
                         util/helper_functions.h \
Index: /trunk/src/story_entities/world.cc
===================================================================
--- /trunk/src/story_entities/world.cc	(revision 5388)
+++ /trunk/src/story_entities/world.cc	(revision 5389)
@@ -76,4 +76,5 @@
 
 SHELL_COMMAND(speed, World, setSpeed);
+SHELL_COMMAND(togglePNodeVisibility, World, togglePNodeVisibility);
 
 using namespace std;
@@ -173,4 +174,6 @@
   this->shell = NULL;
   this->entities = NULL;
+
+  this->showPNodes = false;
 }
 
@@ -980,4 +983,7 @@
   ParticleEngine::getInstance()->draw();
 
+  if (unlikely(this->showPNodes))
+    NullParent::getInstance()->debugDraw(0);
+
   GraphicsEngine::getInstance()->draw();
   //TextEngine::getInstance()->draw();
Index: /trunk/src/story_entities/world.h
===================================================================
--- /trunk/src/story_entities/world.h	(revision 5388)
+++ /trunk/src/story_entities/world.h	(revision 5389)
@@ -74,37 +74,10 @@
   void setPath( const char* name);
 
-  inline Camera* getLocalCamera() {return this->localCamera;}
+  inline Camera* getLocalCamera() { return this->localCamera; };
+
+  void togglePNodeVisibility() { this->showPNodes = !this->showPNodes; };
 
  private:
   void constuctorInit(const char* name, int worldID);
-
-  Uint32 lastFrame;                   //!< last time of frame
-  Uint32 cycle;                       //!< The cycle we are in (starts with 0 and rises with every frame)
-  Uint32 dt;                          //!< time needed to calculate this frame (in milliSeconds)
-  float dtS;                          //!< The time needed for caluculations in seconds
-  float speed;                        //!< how fast the game flows
-  double gameTime;                    //!< this is where the game time is saved
-  bool bQuitOrxonox;                  //!< quit this application
-  bool bQuitCurrentGame;              //!< quit only the current game and return to menu
-  bool bPause;                        //!< pause mode
-
-  GLMenuImageScreen* glmis;           //!< The Level-Loader Display
-
-  int debugWorldNr;                   //!< The Debug Nr. needed, if something goes wrong
-  char* path;                         //!< The file from which this world is loaded
-
-  Shell*     shell;
-  OggPlayer* music;
-
-  // IMPORTANT WORLD-ENTITIES
-  Camera* localCamera;                //!< The current Camera
-  WorldEntity* sky;                   //!< The Environmental Heaven of orxonox @todo insert this to environment insted
-  Terrain* terrain;                   //!< The Terrain of the World.
-
-  GLuint objectList;                  //!< temporary: @todo this will be ereased soon
-  tList<WorldEntity>* entities;       //!< A template List of all entities. Every moving thing should be included here, and world automatically updates them.
-  Player* localPlayer;                //!< The Player, you fly through the level.
-  PilotNode* pilotNode;               //!< THe pilot node to fly with the mouse
-
   /* function for main-loop */
   void mainLoop ();
@@ -118,4 +91,35 @@
   void debug ();
 
+  private:
+    bool   showPNodes;                  //!< if the PNodes should be visible.
+    Uint32 lastFrame;                   //!< last time of frame
+    Uint32 cycle;                       //!< The cycle we are in (starts with 0 and rises with every frame)
+    Uint32 dt;                          //!< time needed to calculate this frame (in milliSeconds)
+    float dtS;                          //!< The time needed for caluculations in seconds
+    float speed;                        //!< how fast the game flows
+    double gameTime;                    //!< this is where the game time is saved
+    bool bQuitOrxonox;                  //!< quit this application
+    bool bQuitCurrentGame;              //!< quit only the current game and return to menu
+    bool bPause;                        //!< pause mode
+
+    GLMenuImageScreen* glmis;           //!< The Level-Loader Display
+
+    int debugWorldNr;                   //!< The Debug Nr. needed, if something goes wrong
+    char* path;                         //!< The file from which this world is loaded
+
+    Shell*     shell;
+    OggPlayer* music;
+
+  // IMPORTANT WORLD-ENTITIES
+    Camera* localCamera;                //!< The current Camera
+    WorldEntity* sky;                   //!< The Environmental Heaven of orxonox @todo insert this to environment insted
+    Terrain* terrain;                   //!< The Terrain of the World.
+
+    GLuint objectList;                  //!< temporary: @todo this will be ereased soon
+    tList<WorldEntity>* entities;       //!< A template List of all entities. Every moving thing should be included here, and world automatically updates them.
+    Player* localPlayer;                //!< The Player, you fly through the level.
+    PilotNode* pilotNode;               //!< THe pilot node to fly with the mouse
+
+
 };
 
