Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision 3b8adee6ca0d66d59fd2b8970def1fb79f71ae5c)
+++ client/Client/main.cpp	(revision 60776f2940bf52bf8f8f0293de78b27fdbcf11ac)
@@ -371,4 +371,6 @@
 {
    string response = string(msg.buffer);
+
+   cout << "Got message: " << msg.type << endl;
 
    switch(state)
@@ -437,9 +439,10 @@
             case MSG_TYPE_PLAYER:
             {
-               Player p = *(Player*)(&(msg.buffer));
-
-               cout << "p.name: " << p.name;
-               cout << "p.pos.x: " << p.pos.x;
-               cout << "p.pos.y: " << p.pos.y;
+               Player p("", "");
+               p.deserialize(msg.buffer);
+
+               cout << "p.name: " << p.name << endl;
+               cout << "p.pos.x: " << p.pos.x << endl;
+               cout << "p.pos.y: " << p.pos.y << endl;
 
                break;
Index: common/Player.cpp
===================================================================
--- common/Player.cpp	(revision 3b8adee6ca0d66d59fd2b8970def1fb79f71ae5c)
+++ common/Player.cpp	(revision 60776f2940bf52bf8f8f0293de78b27fdbcf11ac)
@@ -37,6 +37,8 @@
 
    oss << this->name;
+   oss.write((char*)&(this->pos.x), sizeof(int));
+   oss.write((char*)&(this->pos.y), sizeof(int));
 
-   memcpy(buffer, oss.str().c_str(), this->name.length()+1);
+   memcpy(buffer, oss.str().c_str(), this->name.length()+1+2*sizeof(int));
 }
 
@@ -44,6 +46,9 @@
 {
    istringstream iss;
+   iss.str(buffer);
 
    iss >> this->name;
+   iss.read((char*)&(this->pos.x), sizeof(int));
+   iss.read((char*)&(this->pos.y), sizeof(int));
 }
 
