diff -r 6354ae58ddc5 Makefile.in
--- a/Makefile.in	Wed Apr 14 19:34:18 2010 -0700
+++ b/Makefile.in	Wed Apr 14 19:36:36 2010 -0700
@@ -527,8 +527,8 @@
 	&& DISPLAY=:$$XID && export DISPLAY
 
 
-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
-SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
+SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos
+SUBDIRS = po po-properties $(SRC_SUBDIRS) m4macros
 
 # require automake 1.4
 AUTOMAKE_OPTIONS = 1.7
diff -r 6354ae58ddc5 gdk/Makefile.in
--- a/gdk/Makefile.in	Wed Apr 14 19:34:18 2010 -0700
+++ b/gdk/Makefile.in	Wed Apr 14 19:36:36 2010 -0700
@@ -433,7 +433,7 @@
 	&& DISPLAY=:$$XID && export DISPLAY
 
 
-SUBDIRS = $(gdktarget) . tests
+SUBDIRS = $(gdktarget) .
 DIST_SUBDIRS = win32 x11 quartz directfb tests
 
 INCLUDES = \
diff -r 6354ae58ddc5 gtk/Makefile.in
--- a/gtk/Makefile.in	Wed Apr 14 19:34:18 2010 -0700
+++ b/gtk/Makefile.in	Wed Apr 14 19:36:36 2010 -0700
@@ -473,7 +473,7 @@
 @USE_QUARTZ_TRUE@GTK_PRINT_PREVIEW_COMMAND = "open -a /Applications/Preview.app %f"
 @USE_QUARTZ_FALSE@GTK_PRINT_PREVIEW_COMMAND = "evince --unlink-tempfile --preview --print-settings %s %f"
 
-SUBDIRS = theme-bits . tests
+SUBDIRS = theme-bits .
 DIST_SUBDIRS = theme-bits tests
 @HAVE_CUPS_FALSE@@HAVE_PAPI_CUPS_FALSE@@HAVE_PAPI_TRUE@GTK_PRINT_BACKENDS = file,papi
 @HAVE_CUPS_FALSE@@HAVE_PAPI_CUPS_FALSE@@HAVE_PAPI_FALSE@GTK_PRINT_BACKENDS = file,lpr
diff -r 3f89048b07ef gdk/win32/gdkwindow-win32.c
--- a/gdk/win32/gdkwindow-win32.c	Sun Apr 18 11:50:14 2010 -0700
+++ b/gdk/win32/gdkwindow-win32.c	Sun Apr 18 12:13:54 2010 -0700
@@ -1128,7 +1128,7 @@
     {
       ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNOACTIVATE);
     }
-  else
+  else if (!IsWindowVisible (GDK_WINDOW_HWND (window)))
     {
       ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL);
     }
@@ -3585,6 +3585,8 @@
 gdk_window_focus (GdkWindow *window,
                   guint32    timestamp)
 {
+  GdkWindowObject *private = (GdkWindowObject *) window;
+
   g_return_if_fail (GDK_IS_WINDOW (window));
 
   if (GDK_WINDOW_DESTROYED (window))
@@ -3594,10 +3596,13 @@
 			   GDK_WINDOW_HWND (window),
 			   _gdk_win32_window_state_to_string (((GdkWindowObject *) window)->state)));
 
-  if (((GdkWindowObject *) window)->state & GDK_WINDOW_STATE_MAXIMIZED)
+  if (private->state & GDK_WINDOW_STATE_MAXIMIZED)
     ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWMAXIMIZED);
-  else
+  else if (private->state & GDK_WINDOW_STATE_ICONIFIED)
+    ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
+  else if (!IsWindowVisible (GDK_WINDOW_HWND (window)))
     ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL);
+
   SetFocus (GDK_WINDOW_HWND (window));
 }
 
