diff -ruN sources-original/gtk/gtk/gtkiconcache.c sources/gtk/gtk/gtkiconcache.c
--- sources-original/gtk/gtk/gtkiconcache.c	2011-08-16 04:04:34 +0200
+++ sources/gtk/gtk/gtkiconcache.c	2011-10-03 02:24:22 +0200
@@ -89,8 +89,8 @@
 
   gchar *cache_filename;
   gint fd = -1;
-  struct stat st;
-  struct stat path_st;
+  GStatBuf st;
+  GStatBuf path_st;
   CacheInfo info;
 
    /* Check if we have a cache file */
@@ -107,7 +107,12 @@
 
   if (fd < 0)
     goto done;
-  
+
+#ifdef G_OS_WIN32
+#undef fstat /* Just in case */
+#define fstat _fstat32  
+#endif
+
   if (fstat (fd, &st) < 0 || st.st_size < 4)
     goto done;
 
diff -ruN sources-original/gtk/gtk/gtkicontheme.c sources/gtk/gtk/gtkicontheme.c
--- sources-original/gtk/gtk/gtkicontheme.c	2011-08-16 04:04:34 +0200
+++ sources/gtk/gtk/gtkicontheme.c	2011-10-02 23:46:05 +0200
@@ -979,7 +979,7 @@
   GKeyFile *theme_file;
   GError *error = NULL;
   IconThemeDirMtime *dir_mtime;
-  struct stat stat_buf;
+  GStatBuf stat_buf;
   
   priv = icon_theme->priv;
 
@@ -1123,7 +1123,7 @@
   IconSuffix old_suffix, new_suffix;
   GTimeVal tv;
   IconThemeDirMtime *dir_mtime;
-  struct stat stat_buf;
+  GStatBuf stat_buf;
   
   priv = icon_theme->priv;
 
@@ -1948,7 +1948,7 @@
   IconThemeDirMtime *dir_mtime;
   GList *d;
   int stat_res;
-  struct stat stat_buf;
+  GStatBuf stat_buf;
   GTimeVal tv;
 
   priv = icon_theme->priv;
diff -ruN sources-original/gtk/gtk/gtkrecentmanager.c sources/gtk/gtk/gtkrecentmanager.c
--- sources-original/gtk/gtk/gtkrecentmanager.c	2011-08-16 04:04:34 +0200
+++ sources/gtk/gtk/gtkrecentmanager.c	2011-10-02 20:24:19 +0200
@@ -2037,7 +2037,7 @@
 gtk_recent_info_exists (GtkRecentInfo *info)
 {
   gchar *filename;
-  struct stat stat_buf;
+  GStatBuf stat_buf;
   gboolean retval = FALSE;
   
   g_return_val_if_fail (info != NULL, FALSE);
@@ -2049,7 +2049,7 @@
   filename = g_filename_from_uri (info->uri, NULL, NULL);
   if (filename)
     {
-      if (stat (filename, &stat_buf) == 0)
+      if (g_stat (filename, &stat_buf) == 0)
         retval = TRUE;
      
       g_free (filename);
diff -ruN sources-original/gtk/gtk/updateiconcache.c sources/gtk/gtk/updateiconcache.c
--- sources-original/gtk/gtk/updateiconcache.c	2011-08-16 04:04:36 +0200
+++ sources/gtk/gtk/updateiconcache.c	2011-10-02 23:11:14 +0200
@@ -73,11 +73,11 @@
 
 #include <ftw.h>
 
-static struct stat cache_stat;
+static GStatBuf cache_stat;
 static gboolean cache_up_to_date;
 
 static int check_dir_mtime (const char        *dir, 
-                            const struct stat *sb,
+                            const GStatBuf    *sb,
                             int                tf)
 {
   if (tf != FTW_NS && sb->st_mtime > cache_stat.st_mtime)
@@ -118,7 +118,7 @@
 gboolean
 is_cache_up_to_date (const gchar *path)
 {
-  struct stat path_stat, cache_stat;
+  GStatBuf path_stat, cache_stat;
   gchar *cache_path;
   int retval; 
   
@@ -1455,7 +1455,7 @@
 #endif
   GHashTable *files;
   FILE *cache;
-  struct stat path_stat, cache_stat;
+  GStatBuf path_stat, cache_stat;
   struct utimbuf utime_buf;
   GList *directories = NULL;
   int fd;
