Index: armyproto.h
===================================================================
--- armyproto.h	(revision 1893)
+++ armyproto.h	(working copy)
@@ -44,7 +44,7 @@
 	ArmyProto();
 
 	//! Destructor.
-        ~ArmyProto();
+        virtual ~ArmyProto();
 
         // Set functions:
         
Index: editor/tileset-selector-editor-dialog.cpp
===================================================================
--- editor/tileset-selector-editor-dialog.cpp	(revision 1893)
+++ editor/tileset-selector-editor-dialog.cpp	(working copy)
@@ -113,7 +113,7 @@
   std::string str = Configuration::s_dataPath + "/tilesets/" +  
     d_tileset->getSubDir() +"/";
   char mypath[PATH_MAX]; //god i hate path_max.  die die die
-  char *tmp = realpath(str.c_str(), mypath);
+  char *tmp = "/something";//realpath(str.c_str(), mypath); //don't care to figure this out now, I wanna build the game, not the editor :P
   std::string path = tmp;
   if (selected_filename.substr(0, path.size()) !=path)
     return;
Index: game-station.h
===================================================================
--- game-station.h	(revision 1893)
+++ game-station.h	(working copy)
@@ -46,7 +46,7 @@
   void listenForLocalEvents(Player *p);
 protected:
   GameStation();
-  ~GameStation();
+  virtual ~GameStation();
 
   virtual void onActionDone(NetworkAction *action) = 0;
   virtual void onHistoryDone(NetworkHistory *history) = 0;
Index: GameMap.cpp
===================================================================
--- GameMap.cpp	(revision 1893)
+++ GameMap.cpp	(working copy)
@@ -44,6 +44,27 @@
 #include "GraphicsCache.h"
 #include "MapBackpack.h"
 
+/* dirty hack to get it to compile */
+int vasprintf( char **sptr, char *fmt, va_list argv )
+{
+int wanted = vsnprintf( *sptr = NULL, 0, fmt, argv );
+if( (wanted > 0) && (( malloc( 1 + wanted )) != NULL) )
+return vsprintf( *sptr, fmt, argv );
+
+return wanted;
+}
+
+int asprintf( char **sptr, char *fmt, ... )
+{
+int retval;
+va_list argv;
+va_start( argv, fmt );
+retval = vasprintf( sptr, fmt, argv );
+va_end( argv );
+return retval;
+}
+// end dirty hack
+
 std::string GameMap::d_tag = "map";
 std::string GameMap::d_itemstack_tag = "itemstack";
 using namespace std;
Index: GameScenario.cpp
===================================================================
--- GameScenario.cpp	(revision 1893)
+++ GameScenario.cpp	(working copy)
@@ -651,11 +651,12 @@
 	
 void GameScenario::setNewRandomId()
 {
-  char buf[40];
+  /*char buf[40];
   uuid_t uu;
   uuid_generate_time(uu);
   uuid_unparse(uu, buf);
-  d_id = buf;
+  d_id = buf;*/
+  char* d_id = "9f1f6c14-5ab8-11de-9127-93f71b3c32a9";
 }
 	
 bool GameScenario::validate(std::list<std::string> &errors, std::list<std::string> &warnings)
Index: gui/driver.cpp
===================================================================
--- gui/driver.cpp	(revision 1893)
+++ gui/driver.cpp	(working copy)
@@ -24,6 +24,7 @@
 #include "driver.h"
 
 #include <iostream>
+#include <windows.h>
 #include "error-utils.h"
 #include "main.h"
 #include "splash-window.h"
@@ -716,7 +717,7 @@
   static int count = 1;
   count++;
   printf ("starting round %d!\n", count);
-  sleep (1);
+  Sleep (1);
 }
 
 void Driver::stress_test()
Index: gui/gtksdl.c
===================================================================
--- gui/gtksdl.c	(revision 1893)
+++ gui/gtksdl.c	(working copy)
@@ -17,10 +17,16 @@
 
 #include <stdlib.h>
 
-#include <gdk/gdkx.h>
+
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 
+#ifdef GDK_WINDOWING_WIN32
+#include <gdk/gdkwin32.h>
+#else //This should work for Windows & Linux and should be easy enough to expand
+#include <gdk/gdkx.h>
+#endif
+
 #include "gtksdl.h"
 
 static void gtk_sdl_class_init		(GtkSDLClass	*klass);
@@ -200,6 +206,20 @@
   DEBUG_OUT ("after sdl realize");
 }
 
+/* example from man http://readlist.com/lists/lists.sourceforge.net/mingw-users/0/2755.html
+quick dirty hack for compilation purposes */
+static void
+  mysetenv(const char *name, const char *value) {
+  #ifdef HAVE_SETENV
+    setenv(name, value, 1);
+  #else
+    int len = strlen(value)+1+strlen(value)+1;
+    char *str = malloc(len);
+    sprintf(str, "%s=%s", name, value);
+    putenv(str);
+  #endif
+}
+
 static void gtk_sdl_attach_surface (GtkSDL *sdl)
 {
 #define SDL_WINDOWHACK_BUFFER_SIZE 64
@@ -214,10 +234,12 @@
   widget = GTK_WIDGET(sdl);
 
   snprintf (SDL_windowhack, SDL_WINDOWHACK_BUFFER_SIZE, "%ld",
-	    GDK_WINDOW_XWINDOW (GTK_WIDGET (sdl)->window));
+	    GDK_WINDOW (GTK_WIDGET (sdl)->window));
   DEBUG_OUT (SDL_windowhack);
-  setenv ("SDL_WINDOWID", SDL_windowhack, 1);
+  //setenv ("SDL_WINDOWID", SDL_windowhack, 1);
+  mysetenv ("SDL_WINDOWID", SDL_windowhack);
 
+
   if (SDL_InitSubSystem (SDL_INIT_VIDEO) < 0) {
     fprintf (stderr, "unable to init SDL: %s", SDL_GetError() );
     return;
Index: gui/new-game-progress-window.cpp
===================================================================
--- gui/new-game-progress-window.cpp	(revision 1893)
+++ gui/new-game-progress-window.cpp	(working copy)
@@ -20,6 +20,7 @@
 #include "driver.h"
 #include "playerlist.h"
 #include "game-parameters.h"
+#include <windows.h>
 
 Glib::StaticMutex mutex = GLIBMM_STATIC_MUTEX_INIT;
  
@@ -53,7 +54,7 @@
   s_instance = this;
   bool update_uuid = false;
   //m_dispatcher();
-  sleep(2);
+  Sleep(2);
   if (game_params.map_path.empty()) 
     {
       // construct new random scenario if we're not going to load the game
Index: NextTurn.h
===================================================================
--- NextTurn.h	(revision 1893)
+++ NextTurn.h	(working copy)
@@ -52,7 +52,7 @@
         /**
            \brief destructor
          */
-        ~NextTurn();
+        virtual ~NextTurn();
         
         /**
            \brief start a new game
Index: NextTurnHotseat.h
===================================================================
--- NextTurnHotseat.h	(revision 1893)
+++ NextTurnHotseat.h	(working copy)
@@ -50,7 +50,7 @@
         /**
            \brief destructor
          */
-        ~NextTurnHotseat();
+        virtual ~NextTurnHotseat();
         
         /**
            \brief start a new game
Index: overviewmap.cpp
===================================================================
--- overviewmap.cpp	(revision 1893)
+++ overviewmap.cpp	(working copy)
@@ -35,6 +35,7 @@
 #include "sdl-draw.h"
 #include "GraphicsCache.h"
 #include "FogMap.h"
+#include "rand_r.c"
 
 OverviewMap::OverviewMap()
 {
Index: tilestyle.cpp
===================================================================
--- tilestyle.cpp	(revision 1893)
+++ tilestyle.cpp	(working copy)
@@ -17,9 +17,16 @@
 
 #include <iostream>
 
+
 #include "tilestyle.h"
 #include "defs.h"
 
+/* dirty hack to get it to compile */
+extern int vasprintf( char **sptr, char *fmt, va_list argv );
+
+extern int asprintf( char **sptr, char *fmt, ... );
+// end dirty hack
+
 std::string TileStyle::d_tag = "tilestyle";
 using namespace std;
 
Index: ucompose.hpp
===================================================================
--- ucompose.hpp	(revision 1893)
+++ ucompose.hpp	(working copy)
@@ -3,9 +3,9 @@
  * Uses Glib::ustring instead of std::string which doesn't work with
  * Gtkmm due to character encoding troubles with stringstreams.
  *
- * Version 1.0.4.
+ * Version 1.0.5.
  *
- * Copyright (c) 2002, 03, 04 Ole Laursen <olau@hardworking.dk>.
+ * Copyright (c) 2002, 03, 04, 07 Ole Laursen <olau@hardworking.dk>.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -17,10 +17,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this file; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
- * 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA.
  */
 
 //
@@ -28,7 +28,7 @@
 //
 //   String::ucompose("This is a %1x%2 matrix.", rows, cols);
 //
-// See http://www.cs.aau.dk/~olau/compose/ or the included
+// See http://people.iola.dk/olau/compose/ or the included
 // README.compose for more details.
 //
 
@@ -61,7 +61,7 @@
     Glib::ustring str() const;
 
   private:
-    std::wostringstream os;
+    std::basic_ostringstream<wchar_t> os;
     int arg_no;
 
     // we store the output as a list - when the output string is requested, the
@@ -151,6 +151,13 @@
   {
     return obj;
   }
+
+  template <>
+  inline std::string
+  Composition::stringify<char *>(char *obj)
+  {
+    return obj;
+  }
   
   // implementation of class Composition
   template <typename T>
@@ -178,9 +185,9 @@
   inline Composition::Composition(std::string fmt)
     : arg_no(1)
   {
-//#if __GNUC__ >= 3
-    //os.imbue(std::locale("")); // use the user's locale for the stream
-//#endif
+#if __GNUC__ >= 3
+    os.imbue(std::locale("")); // use the user's locale for the stream
+#endif
     std::string::size_type b = 0, i = 0;
   
     // fill in output with the strings between the %1 %2 %3 etc. and
