Index: code/branches/ggz/bin/ggz/module.dsc
===================================================================
--- code/branches/ggz/bin/ggz/module.dsc	(revision 3106)
+++ code/branches/ggz/bin/ggz/module.dsc	(revision 3107)
@@ -8,3 +8,3 @@
 ProtocolVersion = 0
 Version = 0
-IconPath = /home/adi/development/orxonox/media/materials/textures/orxonox_logo.svg
+#IconPath = /home/adi/development/orxonox/media/materials/textures/orxonox_logo.svg
Index: code/branches/ggz/src/orxonox/GGZClient.cc
===================================================================
--- code/branches/ggz/src/orxonox/GGZClient.cc	(revision 3106)
+++ code/branches/ggz/src/orxonox/GGZClient.cc	(revision 3107)
@@ -8,5 +8,5 @@
     GGZClient* GGZClient::singletonRef_s = 0;
 
-    GGZClient::GGZClient()
+    GGZClient::GGZClient(GSClient * c)
         : ggzSocket(io), gameSocket(io)
     {
@@ -14,4 +14,5 @@
         singletonRef_s = this;
 
+        client = c;
         initGGZ();
     }
@@ -38,7 +39,9 @@
     void GGZClient::tick(const float /*dt*/)
     {
+        COUT(3) << "Tick\n";
         boost::system::error_code ec;
         io.poll(ec);
-        if (ec) {
+        if (ec)
+        {
             /* TODO: Error */
         }
@@ -47,12 +50,15 @@
     void GGZClient::initGGZ()
     {
+        COUT(3) << "Initializing GGZ\n";
         ggzmod = ggzmod_new(GGZMOD_GAME);
         ggzmod_set_handler(ggzmod, GGZMOD_EVENT_SERVER,
                 &orxonox::GGZClient::handleGGZModServer);
-        if (ggzmod_connect(ggzmod) < 0) {
+        if (ggzmod_connect(ggzmod) < 0)
+        {
             /* TODO: Error */
         }
         int fd = ggzmod_get_fd(ggzmod);
-        if (fd < 0) {
+        if (fd < 0)
+        {
             /* TODO: Error */
         }
@@ -84,4 +90,5 @@
             const void *data)
     {
+        COUT(3) << "GGZ Initialized\n";
         ggzmod_set_state(ggzmod, GGZMOD_STATE_PLAYING);
         getInstance().gameSocket.assign(boost::asio::local::stream_protocol(), *(int*)data);
Index: code/branches/ggz/src/orxonox/GGZClient.h
===================================================================
--- code/branches/ggz/src/orxonox/GGZClient.h	(revision 3106)
+++ code/branches/ggz/src/orxonox/GGZClient.h	(revision 3107)
@@ -4,4 +4,5 @@
 #include "OrxonoxPrereqs.h"
 #include "objects/Tickable.h"
+#include "gamestates/GSClient.h"
 
 #include <ggzmod.h>
@@ -13,5 +14,5 @@
     {
         public:
-            GGZClient();
+            GGZClient(GSClient * client);
             ~GGZClient();
 
@@ -23,4 +24,5 @@
             static GGZClient* singletonRef_s;
 
+            GSClient * client;
             GGZMod * ggzmod;
             boost::asio::io_service io;
Index: code/branches/ggz/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/ggz/src/orxonox/OrxonoxPrereqs.h	(revision 3106)
+++ code/branches/ggz/src/orxonox/OrxonoxPrereqs.h	(revision 3107)
@@ -235,5 +235,5 @@
     class Scoreboard;
 
-    //gui
+    // gui
     class GUIManager;
 
@@ -248,4 +248,7 @@
     class GSClient;
     class GSGUI;
+
+    // GGZ
+    class GGZClient;
 }
 
Index: code/branches/ggz/src/orxonox/gamestates/GSClient.cc
===================================================================
--- code/branches/ggz/src/orxonox/gamestates/GSClient.cc	(revision 3106)
+++ code/branches/ggz/src/orxonox/gamestates/GSClient.cc	(revision 3107)
@@ -30,4 +30,5 @@
 #include "OrxonoxStableHeaders.h"
 #include "GSClient.h"
+#include "SpecialConfig.h"
 
 #include "core/input/InputManager.h"
@@ -44,6 +45,7 @@
 
     GSClient::GSClient()
-        : GameState<GSGraphics>("client")
-        , client_(0)
+        : GameState<GSGraphics>("client"),
+        client_(0),
+        ggzClient(0)
     {
     }
@@ -58,17 +60,17 @@
 
 #ifdef GGZMOD_FOUND
-        ggzClient = NULL;
-        if (GGZClient::isActive()) {
-            COUT(3) << "Initializing GGZ\n";
-            ggzClient = new GGZClient;
+        if (GGZClient::isActive())
+        {
+            this->ggzClient = new GGZClient(this);
+            return;
         }
-        else {
-            COUT(3) << "Not using GGZ\n";
-        }
-#else  /* GGZMOD_FOUND */
-        COUT(3) << "GGZ support disabled\n";
 #endif /* GGZMOD_FOUND */
 
-        this->client_ = new Client(CommandLine::getValue("ip").getString(), CommandLine::getValue("port"));
+        this->connect(CommandLine::getValue("ip").getString(), CommandLine::getValue("port"));
+    }
+
+    void GSClient::connect(const std::string& address, int port)
+    {
+        this->client_ = new Client(address, port);
 
         if(!client_->establishConnection())
@@ -86,10 +88,8 @@
         client_->closeConnection();
 
-#ifdef GGZMOD_FOUND
         if (ggzClient)
         {
             delete ggzClient;
         }
-#endif /* GGZMOD_FOUND */
 
         // destroy client
Index: code/branches/ggz/src/orxonox/gamestates/GSClient.h
===================================================================
--- code/branches/ggz/src/orxonox/gamestates/GSClient.h	(revision 3106)
+++ code/branches/ggz/src/orxonox/gamestates/GSClient.h	(revision 3107)
@@ -30,5 +30,4 @@
 #define _GSClient_H__
 
-#include "SpecialConfig.h"
 #include "OrxonoxPrereqs.h"
 #include "network/NetworkPrereqs.h"
@@ -38,8 +37,4 @@
 namespace orxonox
 {
-#ifdef GGZMOD_FOUND
-    class _OrxonoxExport GGZClient;
-#endif /* GGZMOD_FOUND */
-
     class _OrxonoxExport GSClient : public GameState<GSGraphics>, public GSLevel
     {
@@ -47,4 +42,5 @@
         GSClient();
         ~GSClient();
+        void connect(const std::string& address, int port);
 
     private:
@@ -54,7 +50,5 @@
 
         Client* client_;
-#ifdef GGZMOD_FOUND
         GGZClient* ggzClient;
-#endif /* GGZMOD_FOUND */
     };
 }
