Index: code/trunk/src/audio/AudioManager.cc
===================================================================
--- code/trunk/src/audio/AudioManager.cc	(revision 1633)
+++ code/trunk/src/audio/AudioManager.cc	(revision 1639)
@@ -28,4 +28,6 @@
 
 #include "AudioManager.h"
+
+#include <cstdlib>
 
 #include <AL/alut.h>
Index: code/trunk/src/core/Identifier.h
===================================================================
--- code/trunk/src/core/Identifier.h	(revision 1633)
+++ code/trunk/src/core/Identifier.h	(revision 1639)
@@ -59,4 +59,6 @@
 #include <string>
 #include <utility>
+#include <typeinfo>
+#include <stdlib.h>
 
 #include "ObjectList.h"
Index: code/trunk/src/core/SignalHandler.cc
===================================================================
--- code/trunk/src/core/SignalHandler.cc	(revision 1633)
+++ code/trunk/src/core/SignalHandler.cc	(revision 1639)
@@ -36,4 +36,6 @@
 #include <assert.h>
 #include <iostream>
+#include <cstdlib>
+#include <string.h>
 
 #include "Debug.h"
Index: code/trunk/src/network/GameStateManager.cc
===================================================================
--- code/trunk/src/network/GameStateManager.cc	(revision 1633)
+++ code/trunk/src/network/GameStateManager.cc	(revision 1639)
@@ -45,4 +45,5 @@
 #include <zlib.h>
 #include <assert.h>
+#include <string.h>
 
 #include "core/CoreIncludes.h"
@@ -70,5 +71,5 @@
     return;
   }
-  
+
   void GameStateManager::addGameState(GameStateCompressed *gs, int clientID){
     if(!gs)
@@ -83,5 +84,5 @@
     return;
   }
-  
+
   void GameStateManager::processGameStates(){
     std::map<int, GameStateCompressed*>::iterator it;
@@ -93,11 +94,11 @@
     gameStateQueue.clear();
   }
-  
-  
+
+
   /**
    * this function is used to keep the memory usage low
    * it tries to delete all the unused gamestates
-   * 
-   * 
+   *
+   *
    */
   void GameStateManager::cleanup(){
@@ -142,5 +143,6 @@
       GameState *server = reference;
       //COUT(4) << "client: " << client << " server: " << server << " gamestatemap: " << &gameStateMap << " size: " << server->size << std::endl;
-      COUT(4) << "client: " << (client!=0 ? client->id : (int)client) << " server: " << server->id << " gamestatemap: " << &gameStateMap << " size: " << server->size << std::endl;
+      //FIXME complains about precision loss on int conversion
+//       COUT(4) << "client: " << (client!=0 ? client->id : (int)client) << " server: " << server->id << " gamestatemap: " << &gameStateMap << " size: " << server->size << std::endl;
       if(client)
         return encode(client, server);
@@ -155,5 +157,5 @@
     }
   }
-  
+
   bool GameStateManager::pushGameState( GameStateCompressed *gs, int clientID ){
     GameState *ugs = decompress(gs);
@@ -308,6 +310,6 @@
     return true;
   }
-  
-  
+
+
   //##### ADDED FOR TESTING PURPOSE #####
   GameStateCompressed* GameStateManager::testCompress( GameState* g ) {
@@ -405,5 +407,5 @@
     switch ( retval ) {
       case Z_OK: COUT(5) << "G.St.Man: compress: successfully compressed" << std::endl; break;
-      case Z_MEM_ERROR: COUT(1) << "G.St.Man: compress: not enough memory available in gamestate.compress" << std::endl; 
+      case Z_MEM_ERROR: COUT(1) << "G.St.Man: compress: not enough memory available in gamestate.compress" << std::endl;
       return NULL;
       case Z_BUF_ERROR: COUT(2) << "G.St.Man: compress: not enough memory available in the buffer in gamestate.compress" << std::endl;
@@ -426,5 +428,5 @@
     return compressedGamestate;
   }
-  
+
   GameState *GameStateManager::decompress(GameStateCompressed *a) {
     //COUT(4) << "GameStateClient: uncompressing gamestate. id: " << a->id << ", baseid: " << a->base_id << ", normsize: " << a->normsize << ", compsize: " << a->compsize << std::endl;
@@ -464,5 +466,5 @@
     return gamestate;
   }
-  
+
 
   void GameStateManager::ackGameState(int clientID, int gamestateID) {
@@ -471,5 +473,5 @@
       return;
     int curid = temp->getGamestateID();
-    
+
     if(gamestateID == GAMESTATEID_INITIAL){
       temp->setGameStateID(GAMESTATEID_INITIAL);
@@ -481,5 +483,5 @@
     }
     if(curid > gamestateID)
-      // the network packets got messed up 
+      // the network packets got messed up
       return;
     COUT(4) << "acking gamestate " << gamestateID << " for clientid: " << clientID << " curid: " << curid << std::endl;
@@ -512,5 +514,5 @@
     return true;
   }
-  
+
   bool GameStateManager::checkAccess(int clientID, int objectID){
     // currently we only check, wheter the object is the clients spaceship
@@ -518,5 +520,5 @@
     return true; // TODO: change this
   }
-  
+
   void GameStateManager::removeClient(ClientInformation* client){
     if(!client)
Index: code/trunk/src/network/PacketDecoder.cc
===================================================================
--- code/trunk/src/network/PacketDecoder.cc	(revision 1633)
+++ code/trunk/src/network/PacketDecoder.cc	(revision 1639)
@@ -39,4 +39,5 @@
 
 #include <iostream>
+#include <string.h>
 
 #include "core/Debug.h"
Index: code/trunk/src/network/Synchronisable.cc
===================================================================
--- code/trunk/src/network/Synchronisable.cc	(revision 1633)
+++ code/trunk/src/network/Synchronisable.cc	(revision 1639)
@@ -43,4 +43,5 @@
 #include <string>
 #include <iostream>
+#include <string.h>
 
 #include "core/CoreIncludes.h"
@@ -49,8 +50,8 @@
 namespace network
 {
-  
-  
+
+
   int Synchronisable::state_=0x1; // detemines wheter we are server (default) or client
-  
+
   /**
   * Constructor:
@@ -72,5 +73,5 @@
         delete (*it)->callback;
   }
-  
+
   bool Synchronisable::create(){
     this->classID = this->getIdentifier()->getNetworkID();
@@ -78,5 +79,5 @@
     return true;
   }
-  
+
   void Synchronisable::setClient(bool b){
     if(b) // client
@@ -97,8 +98,8 @@
     temp->size = size;
     temp->var = var;
-    temp->mode = mode; 
+    temp->mode = mode;
     temp->type = t;
     temp->callback = cb;
-    COUT(5) << "Syncronisable::registering var with size: " << temp->size << " and type: " << temp->type << std::endl; 
+    COUT(5) << "Syncronisable::registering var with size: " << temp->size << " and type: " << temp->type << std::endl;
     // increase datasize
     datasize+=sizeof(int)+size;
@@ -187,5 +188,5 @@
       switch((*i)->type){
       case DATA:
-        std::memcpy( (void *)(retVal.data+n), (void*)((*i)->var), (*i)->size);
+        memcpy( (void *)(retVal.data+n), (void*)((*i)->var), (*i)->size);
         n+=(*i)->size;
         break;
@@ -194,5 +195,5 @@
         n+=sizeof(int);
         const char *data = ( ( *(std::string *) (*i)->var).c_str());
-        std::memcpy( retVal.data+n, (void*)data, (*i)->size);
+        memcpy( retVal.data+n, (void*)data, (*i)->size);
         COUT(5) << "synchronisable: char: " << (const char *)(retVal.data+n) << " data: " << data << " string: " << *(std::string *)((*i)->var) << std::endl;
         n+=(*i)->size;
@@ -278,5 +279,5 @@
     return tsize;
   }
-  
+
   void Synchronisable::setBacksync(bool sync){
     backsync_=sync;
@@ -286,4 +287,4 @@
     return backsync_;
   }
-  
+
 }
Index: code/trunk/src/tinyxml/ticpp.h
===================================================================
--- code/trunk/src/tinyxml/ticpp.h	(revision 1633)
+++ code/trunk/src/tinyxml/ticpp.h	(revision 1639)
@@ -30,4 +30,5 @@
 @date		04/11/2006
 
+@version  0.04b by nico@orxonox.net: gcc-4.3 compilation hotfixes
 @version	0.04a by edam@waxworlds.org: based Exception based on std::exception; added stream
 					<< and >> support; added Document::Parse(); bug fix; improved THROW() macro.
@@ -51,4 +52,5 @@
 #include <memory>
 #include <exception>
+#include <typeinfo>
 
 /**
Index: code/trunk/src/util/ExprParser.cc
===================================================================
--- code/trunk/src/util/ExprParser.cc	(revision 1633)
+++ code/trunk/src/util/ExprParser.cc	(revision 1639)
@@ -35,4 +35,5 @@
 #include <cmath>
 #include <cstring>
+#include <stdlib.h>
 
 // macros for easier if, else statements
