Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision e1af80c7e31a16db4591bd15fb35b660e038dcdf)
+++ client/Client/main.cpp	(revision 68d94de7bbe815d1c0be9b36199a2411f78823b3)
@@ -130,5 +130,4 @@
 
 MessageProcessor msgProcessor;
-ofstream outputLog;
 
 int main(int argc, char **argv)
@@ -141,4 +140,6 @@
    map<unsigned int, Projectile> mapProjectiles;
    unsigned int curPlayerId = -1;
+   ofstream outputLog;
+
    int scoreBlue, scoreRed;
 
@@ -341,4 +342,6 @@
    memcpy((char *)&server.sin_addr, (char *)hp->h_addr, hp->h_length);
    server.sin_port = htons(atoi(argv[2]));
+
+   msgProcessor = MessageProcessor(sock, &outputLog);
 
    al_start_timer(timer);
@@ -370,5 +373,5 @@
                   msgTo.type = MSG_TYPE_PICKUP_FLAG;
                   memcpy(msgTo.buffer, &curPlayerId, 4);
-                  msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+                  msgProcessor.sendMessage(&msgTo, &server);
                }
                break;
@@ -391,5 +394,5 @@
                         msgTo.type = MSG_TYPE_DROP_FLAG;
                         memcpy(msgTo.buffer, &curPlayerId, 4);
-                        msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+                        msgProcessor.sendMessage(&msgTo, &server);
                      }
                   }
@@ -414,5 +417,5 @@
                   memcpy(msgTo.buffer+8, &pos.y, 4);
 
-                  msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+                  msgProcessor.sendMessage(&msgTo, &server);
                }
                else
@@ -449,5 +452,5 @@
                      memcpy(msgTo.buffer+4, &target->id, 4);
 
-                     msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+                     msgProcessor.sendMessage(&msgTo, &server);
                   }
                }
@@ -456,5 +459,5 @@
       }
 
-      if (msgProcessor.receiveMessage(&msgFrom, sock, &from, &outputLog) >= 0)
+      if (msgProcessor.receiveMessage(&msgFrom, &from) >= 0)
          processMessage(msgFrom, state, chatConsole, gameMap, mapPlayers, mapProjectiles, curPlayerId, scoreBlue, scoreRed);
 
@@ -463,6 +466,5 @@
          redraw = false;
 
-         msgProcessor.resendUnackedMessages(sock, &outputLog);
-         //msgProcessor.cleanAckedMessages(&outputLog);
+         msgProcessor.resendUnackedMessages();
 
          if (debugging && wndCurrent == wndGame)
@@ -981,5 +983,5 @@
                strcpy(msgTo.buffer, gameName.c_str());
 
-               msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+               msgProcessor.sendMessage(&msgTo, &server);
 
                break;
@@ -1362,5 +1364,5 @@
    memcpy(msgTo.buffer+username.size()+password.size()+2, &playerClass, 4);
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1379,5 +1381,5 @@
    strcpy(msgTo.buffer+username.size()+1, strPassword.c_str());
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 
    state = STATE_LOBBY;
@@ -1404,5 +1406,5 @@
    strcpy(msgTo.buffer, username.c_str());
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1420,5 +1422,5 @@
    strcpy(msgTo.buffer, msg.c_str());
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1438,5 +1440,5 @@
    strcpy(msgTo.buffer, msg.c_str());
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1453,5 +1455,5 @@
    strcpy(msgTo.buffer, msg.c_str());
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
@@ -1467,5 +1469,5 @@
    msgTo.type = MSG_TYPE_LEAVE_GAME;
 
-   msgProcessor.sendMessage(&msgTo, sock, &server, &outputLog);
+   msgProcessor.sendMessage(&msgTo, &server);
 }
 
Index: common/MessageProcessor.cpp
===================================================================
--- common/MessageProcessor.cpp	(revision e1af80c7e31a16db4591bd15fb35b660e038dcdf)
+++ common/MessageProcessor.cpp	(revision 68d94de7bbe815d1c0be9b36199a2411f78823b3)
@@ -13,4 +13,12 @@
 
 MessageProcessor::MessageProcessor() {
+   this->sock = 0;
+   this->outputLog = NULL;
+   lastUsedId = 0;
+}
+
+MessageProcessor::MessageProcessor(int sock, ofstream* outputLog) {
+   this->sock = sock;
+   this->outputLog = outputLog;
    lastUsedId = 0;
 }
@@ -19,5 +27,5 @@
 }
 
-int MessageProcessor::sendMessage(NETWORK_MSG *msg, int sock, struct sockaddr_in *dest, ofstream* outputLog) {
+int MessageProcessor::sendMessage(NETWORK_MSG *msg, struct sockaddr_in *dest) {
    cout << "Sending message of type " << msg->type << endl;
 
@@ -35,5 +43,5 @@
 }
 
-int MessageProcessor::receiveMessage(NETWORK_MSG *msg, int sock, struct sockaddr_in *source, ofstream* outputLog) {
+int MessageProcessor::receiveMessage(NETWORK_MSG *msg, struct sockaddr_in *source) {
    socklen_t socklen = sizeof(struct sockaddr_in);
 
@@ -84,5 +92,5 @@
 }
 
-void MessageProcessor::resendUnackedMessages(int sock, ofstream* outputLog) {
+void MessageProcessor::resendUnackedMessages() {
    map<unsigned int, map<unsigned long, MessageContainer> >::iterator it;
    map<unsigned long, MessageContainer>::iterator it2;
@@ -99,5 +107,5 @@
 }
 
-void MessageProcessor::cleanAckedMessages(ofstream* outputLog) {
+void MessageProcessor::cleanAckedMessages() {
    map<unsigned int, map<unsigned long, MessageContainer> >::iterator it = sentMessages.begin();
    map<unsigned long, MessageContainer>::iterator it2;
Index: common/MessageProcessor.h
===================================================================
--- common/MessageProcessor.h	(revision e1af80c7e31a16db4591bd15fb35b660e038dcdf)
+++ common/MessageProcessor.h	(revision 68d94de7bbe815d1c0be9b36199a2411f78823b3)
@@ -10,4 +10,6 @@
 class MessageProcessor {
 private:
+   int sock;
+   ofstream* outputLog;
    int lastUsedId;
 
@@ -18,14 +20,15 @@
    map<unsigned long, map<unsigned int, unsigned long long> > ackedMessages;
 
-   unsigned long pid;
+   //unsigned long pid;
 
 public:
    MessageProcessor();
+   MessageProcessor(int sock, ofstream* outputLog = NULL);
    ~MessageProcessor();
 
-   int sendMessage(NETWORK_MSG *msg, int sock, struct sockaddr_in *dest, ofstream* outputLog = NULL);
-   int receiveMessage(NETWORK_MSG *msg, int sock, struct sockaddr_in *dest, ofstream* outputLog = NULL);
-   void resendUnackedMessages(int sock, ofstream* outputLog = NULL);
-   void cleanAckedMessages(ofstream* outputLog = NULL);
+   int sendMessage(NETWORK_MSG *msg, struct sockaddr_in *dest);
+   int receiveMessage(NETWORK_MSG *msg, struct sockaddr_in *source);
+   void resendUnackedMessages();
+   void cleanAckedMessages();
 
    map<unsigned int, map<unsigned long, MessageContainer> >& getSentMessages();
