Index: branches/network/src/lib/network/network_manager.cc
===================================================================
--- branches/network/src/lib/network/network_manager.cc	(revision 6654)
+++ branches/network/src/lib/network/network_manager.cc	(revision 6658)
@@ -25,5 +25,5 @@
 
 #include "debug.h"
-
+#include "shell_command.h"
 
 /* include your own header */
@@ -33,4 +33,6 @@
 /* using namespace std is default, this needs to be here */
 using namespace std;
+
+SHELL_COMMAND(debug, NetworkManager, debug);
 
 
@@ -112,4 +114,5 @@
   this->bGameServer = true;
   this->defaultSyncStream = new NetworkStream(port);
+  PRINTF(0)("CREATE SERVER\n");
   this->bGameServer = true;
   SDL_Delay(20);
@@ -142,5 +145,6 @@
 void NetworkManager::connectSynchronizeable(Synchronizeable& sync)
 {
-  this->defaultSyncStream->connectSynchronizeable(sync);
+  if( this->defaultSyncStream)
+    this->defaultSyncStream->connectSynchronizeable(sync);
 }
 
@@ -170,2 +174,12 @@
     this->hostID = id;
 }
+
+
+
+/**
+ * debug output
+ */
+ void NetworkManager::debug()
+{
+  this->defaultSyncStream->debug();
+}
Index: branches/network/src/lib/network/network_manager.h
===================================================================
--- branches/network/src/lib/network/network_manager.h	(revision 6654)
+++ branches/network/src/lib/network/network_manager.h	(revision 6658)
@@ -53,4 +53,6 @@
     inline NetworkStream* getDefaultSyncStream() { return this->defaultSyncStream; }
 
+    void debug();
+
 
   private:
Index: branches/network/src/lib/network/network_stream.cc
===================================================================
--- branches/network/src/lib/network/network_stream.cc	(revision 6654)
+++ branches/network/src/lib/network/network_stream.cc	(revision 6658)
@@ -84,5 +84,5 @@
   // setUniqueID( maxCon+2 ) because we need one id for every handshake
   // and one for handshake to reject client maxCon+1
-  this->networkGameManager->setUniqueID( this->maxConnections+2 );
+  this->networkGameManager->setUniqueID( this->maxConnections + 2 );
   this->connectSynchronizeable( *(this->networkGameManager) );
 
@@ -141,4 +141,5 @@
 }
 
+
 void NetworkStream::disconnectSynchronizeable(Synchronizeable& sync)
 {
@@ -216,4 +217,6 @@
   /* DOWNSTREAM */
 
+
+
   int dataLength;
   int reciever;
@@ -221,5 +224,5 @@
   for (SynchronizeableList::iterator it = synchronizeables.begin(); it!=synchronizeables.end(); it++)
   {
-    if ( (*it)!=NULL /*&& (*it)->getOwner() == myHostId*/ )
+    if ( (*it)!=NULL && (*it)->beSynchronized() /*&& (*it)->getOwner() == myHostId*/ )
     {
       do {
@@ -416,2 +419,32 @@
 
 
+
+void NetworkStream::debug()
+{
+  PRINT(0)("=================NetworkStream::debug()====\n");
+  PRINT(0)(" Host ID: %i\n", this->myHostId);
+
+  PRINT(0)(" Connected Synchronizeables:\n");
+  for (SynchronizeableList::iterator it = synchronizeables.begin(); it!=synchronizeables.end(); it++)
+  {
+    PRINT(0)("  Synchronizeable of class: %s::%s, with unique ID: %i\n", (*it)->getClassName(), (*it)->getName(), (*it)->getUniqueID());
+  }
+
+  PRINT(0)(" Maximal Connections: %i\n", this->maxConnections);
+  PRINT(0)("===========================================\n");
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: branches/network/src/lib/network/network_stream.h
===================================================================
--- branches/network/src/lib/network/network_stream.h	(revision 6654)
+++ branches/network/src/lib/network/network_stream.h	(revision 6658)
@@ -57,22 +57,27 @@
     inline bool isUserIdActive( int userID ) { if (userID>=networkSockets.size()) return false; else return networkSockets[userID]!=NULL; }
 
+    void debug();
+
+
   private:
-    NetworkProtocol*       networkProtocol;
-    ConnectionMonitor*     connectionMonitor;
-    SynchronizeableList    synchronizeables;
-    NetworkSocketVector    networkSockets;
-    HandshakeVector        handshakes;
-    ServerSocket*          serverSocket;
-    int                    type;
-    Header                 packetHeader;
-    bool                   bActive;
-    std::list<int>         freeSocketSlots;
+    void updateConnectionList();
 
-    int                    myHostId;
-    int                    maxConnections;
 
-    NetworkGameManager*   networkGameManager;
+  private:
+    NetworkProtocol*           networkProtocol;
+    ConnectionMonitor*         connectionMonitor;
+    SynchronizeableList        synchronizeables;
+    NetworkSocketVector        networkSockets;
+    HandshakeVector            handshakes;
+    ServerSocket*              serverSocket;
+    int                        type;
+    Header                     packetHeader;
+    bool                       bActive;
+    std::list<int>             freeSocketSlots;
 
-    void updateConnectionList();
+    int                        myHostId;
+    int                        maxConnections;
+
+    NetworkGameManager*        networkGameManager;
 };
 #endif /* _NETWORK_STREAM */
Index: branches/network/src/lib/network/synchronizeable.cc
===================================================================
--- branches/network/src/lib/network/synchronizeable.cc	(revision 6654)
+++ branches/network/src/lib/network/synchronizeable.cc	(revision 6658)
@@ -18,7 +18,11 @@
 
 #include "synchronizeable.h"
+
 #include "netdefs.h"
 #include "network_manager.h"
+#include "network_game_manager.h"
 #include "network_stream.h"
+
+#include "assert.h"
 
 
@@ -29,12 +33,21 @@
 {
   this->setClassID(CL_SYNCHRONIZEABLE, "Synchronizeable");
-  owner = 0;
-  state = 0;
-  hostID = NetworkManager::getInstance()->getHostID();
+  this->owner = 0;
+  this->state = 0;
+  this->hostID = NetworkManager::getInstance()->getHostID();
   this->setIsServer(this->hostID == 0);
-  uniqueID = -1;
+  this->uniqueID = -1;
   this->networkStream = NULL;
   this->setRequestedSync( false );
   this->setIsOutOfSync( !(this->isServer()) );
+
+  this->bSynchronize = false;
+  NetworkStream* nd;
+  if( this->isA(CL_NETWORK_GAME_MANAGER))
+  {
+    nd = NetworkGameManager::getInstance()->getNetworkStream();
+    assert(nd != NULL);
+    nd->connectSynchronizeable(*this);
+  }
 }
 
@@ -50,4 +63,5 @@
 }
 
+
 /**
  *  write data to NetworkStream
@@ -57,4 +71,5 @@
   PRINTF(5)("Synchronizeable::writeBytes was called\n");
 }
+
 
 /**
@@ -87,4 +102,5 @@
 }
 
+
 /**
  * Sets the outofsync flag to a given value
@@ -100,4 +116,5 @@
 }
 
+
 /**
  * Determines if the server flag is set
@@ -108,4 +125,5 @@
   return (this->state & STATE_SERVER) >0;
 }
+
 
 /**
@@ -118,4 +136,5 @@
 }
 
+
 /**
  * Determines if the requestedSync flag is set
@@ -126,4 +145,5 @@
   return (this->state & STATE_REQUESTEDSYNC) >0;
 }
+
 
 /**
Index: branches/network/src/lib/network/synchronizeable.h
===================================================================
--- branches/network/src/lib/network/synchronizeable.h	(revision 6654)
+++ branches/network/src/lib/network/synchronizeable.h	(revision 6658)
@@ -197,4 +197,5 @@
 
     inline void setNetworkStream(NetworkStream* stream) { this->networkStream = stream; }
+    inline NetworkStream* getNetworkStream() { return this->networkStream; }
 
 
@@ -210,5 +211,5 @@
     bool              bSynchronize;
 
-    std::list<int> synchronizeRequests;
+    std::list<int>    synchronizeRequests;
 
 };
