Index: branches/network/src/lib/network/network_game_manager.cc
===================================================================
--- branches/network/src/lib/network/network_game_manager.cc	(revision 6667)
+++ branches/network/src/lib/network/network_game_manager.cc	(revision 6668)
@@ -82,4 +82,5 @@
     b = data[i++];
 
+    /**************** Commands only processed by servers ****************/
     if ( isServer() )
     {
@@ -90,5 +91,5 @@
         continue;
       }
-      if ( b == NET_REQUEST_REMOVE )
+      else if ( b == NET_REQUEST_REMOVE )
       {
         if ( !handleRequestRemove( i, data, length, sender ) )
@@ -96,5 +97,5 @@
         continue;
       }
-      if ( b == NET_REQUEST_PNODE_PATH )
+      else if ( b == NET_REQUEST_PNODE_PATH )
       {
         if ( !handleRequestPNodePath( i, data, length, sender ) )
@@ -102,7 +103,14 @@
         continue;
       }
+      else
+      {
+        PRINTF(1)("Network is asynchronous: couldn't decode the command sent by %i\n", sender);
+        PRINTF(1)("Probably this is because the network protocol has different \n");
+        PRINTF(1)("versions or there occured an error in the sending algorithm\n");
+      }
     }
     else
     {
+      /**************** Commands only processed by clients ****************/
       if ( b == NET_CREATE_ENTITY )
       {
@@ -112,5 +120,5 @@
         continue;
       }
-      if ( b == NET_REMOVE_ENTITY )
+      else if ( b == NET_REMOVE_ENTITY )
       {
         if ( !handleRemoveEntity( i, data, length, sender ) )
@@ -118,5 +126,5 @@
         continue;
       }
-      if ( b == NET_CREATE_ENTITY_LIST )
+      else if ( b == NET_CREATE_ENTITY_LIST )
       {
         if ( !handleCreateEntityList( i, data, length, sender ) )
@@ -124,5 +132,5 @@
         continue;
       }
-      if ( b == NET_REMOVE_ENTITY_LIST )
+      else if ( b == NET_REMOVE_ENTITY_LIST )
       {
         if ( !handleRemoveEntityList( i, data, length, sender ) )
@@ -130,5 +138,5 @@
         continue;
       }
-      if ( b == NET_YOU_ARE_ENTITY )
+      else if ( b == NET_YOU_ARE_ENTITY )
       {
         if ( !handleYouAreEntity( i, data, length, sender ) )
@@ -138,4 +146,5 @@
     }
 
+    /**************** Commands processed by servers and clients ****************/
     if ( b == NET_REQUEST_ENTITY_LIST )
     {
@@ -143,6 +152,5 @@
       continue;
     }
-
-    if ( b == NET_REQUEST_SYNC )
+    else if ( b == NET_REQUEST_SYNC )
     {
       if ( !handleRequestSync( i, data, length, sender ) )
@@ -151,5 +159,8 @@
     }
 
-    //if we get her something with data is wrong
+
+    PRINTF(1)("Network is asynchronous: couldn't decode the command sent by %i\n", sender);
+    PRINTF(1)("Probably this is because the network protocol has different \n");
+    PRINTF(1)("versions or there occured an error in the sending algorithm\n");
     PRINTF(1)("Data is not in the right format! i=%d\n", i);
     return i;
@@ -869,6 +880,41 @@
 
 
+/**
+ *  handles the network signal NET_REQUEST_PNODE_PATH
+ * @param i byte offset in the buffer
+ * @param data data array
+ * @param length length of the data arary
+ * @param sender the sender id
+ * @return true if process terminated sucessfully
+ */
 bool NetworkGameManager::handleRequestPNodePath(int& i, const byte* data, int length, int sender)
-{}
+{
+  if( INTSIZE > length-i )
+  {
+    PRINTF(1)("Cannot read n from buffer! Not enough data left!\n");
+    return false;
+  }
+  PRINTF(0)("HandleRequestPNodePath:  data[i..i+3] = %d %d %d %d\n", data[i], data[i+1], data[i+2], data[i+3]);
+
+  int uniqueID1, uniqueID2;
+  if( INTSIZE > length-i )
+  {
+    PRINTF(1)("Cannot read uniqueID from buffer! Not enough data left!\n");
+    return false;
+  }
+  i += Converter::byteArrayToInt( &data[i], &uniqueID1 );
+
+  if( INTSIZE > length-i )
+  {
+    PRINTF(1)("Cannot read uniqueID from buffer! Not enough data left!\n");
+    return false;
+  }
+  i += Converter::byteArrayToInt( &data[i], &uniqueID2 );
+
+
+  PRINTF(0)("HandleRequestPNodePath: got a request for path from uid %i to uid %i\n", uniqueID1, uniqueID2);
+
+  return true;
+}
 
 
Index: branches/network/src/lib/network/network_game_manager.h
===================================================================
--- branches/network/src/lib/network/network_game_manager.h	(revision 6667)
+++ branches/network/src/lib/network/network_game_manager.h	(revision 6668)
@@ -44,4 +44,5 @@
  *                       << UNIQUE_ID_1   UNIQUE_ID_2   UNIQUE_ID_3 ...   UNIQUE_ID_N
  *
+ *  SEND_PNODE_PATH      >> UNIQUE_ID_START   UNIQUE_ID_STOP NUMBER [UNIQUE_ID][0..NUMBER]
  */
 
@@ -57,4 +58,5 @@
   NET_REQUEST_ENTITY_LIST,
   NET_REQUEST_PNODE_PATH,
+  NET_SEND_PNODE_PATH,
 
   NET_NUMBER
@@ -108,4 +110,5 @@
     bool handleRequestSync( int& i, const byte* data, int length, int sender );
     bool handleRequestPNodePath(int& i, const byte* data, int length, int sender);
+    bool handleSendPNodePath(int& i, const byte* data, int length, int sender);
 
 
@@ -125,5 +128,5 @@
 
     void requestPNodePath(const PNode* node1, const PNode* node2);
-    void executePNodePath(const PNode* node2, const PNode* node2);
+    void executeRequestPNodePath(const PNode* node2, const PNode* node2);
     void doRequestPNodePath(const PNode* node1, const PNode* node2);
 
