Index: gtk+/gdk/win32/gdkevents-win32.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/win32/gdkevents-win32.c,v
retrieving revision 1.166
diff -u -p -r1.166 gdkevents-win32.c
--- gtk+/gdk/win32/gdkevents-win32.c	9 May 2006 15:54:22 -0000	1.166
+++ gtk+/gdk/win32/gdkevents-win32.c	16 May 2006 20:27:38 -0000
@@ -2968,7 +2968,8 @@ gdk_event_translate (MSG  *msg,
       if (GDK_WINDOW_DESTROYED (window))
 	break;
 
-      erase_background (window, (HDC) msg->wParam);
+      if (gdk_window_get_window_type (window) != GDK_WINDOW_CHILD && _sizemove_in_progress)
+        erase_background (window, (HDC) msg->wParam);
       return_val = TRUE;
       *ret_valp = 1;
       break;
Index: gtk+/gdk/win32/gdkwindow-win32.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/win32/gdkwindow-win32.c,v
retrieving revision 1.153
diff -u -p -r1.153 gdkwindow-win32.c
--- gtk+/gdk/win32/gdkwindow-win32.c	20 Feb 2006 10:08:37 -0000	1.153
+++ gtk+/gdk/win32/gdkwindow-win32.c	16 May 2006 20:27:39 -0000
@@ -1424,7 +1424,7 @@ _gdk_windowing_window_clear_area (GdkWin
 
   if (!GDK_WINDOW_DESTROYED (window))
     {
-      HDC hdc;
+      GdkRectangle rect;
 
       if (width == 0)
 	width = impl->width - x;
@@ -1434,10 +1434,13 @@ _gdk_windowing_window_clear_area (GdkWin
 			       "%dx%d@%+d%+d\n",
 			       GDK_WINDOW_HWND (window),
 			       width, height, x, y));
-      hdc = GetDC (GDK_WINDOW_HWND (window));
-      IntersectClipRect (hdc, x, y, x + width + 1, y + height + 1);
-      SendMessage (GDK_WINDOW_HWND (window), WM_ERASEBKGND, (WPARAM) hdc, 0);
-      GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
+       rect.x = x;
+       rect.y = y;
+       rect.width = width;
+       rect.height = height;
+
+       gdk_window_begin_paint_rect (window, &rect);
+       gdk_window_end_paint (window);
     }
 }
 
@@ -1452,7 +1455,13 @@ _gdk_windowing_window_clear_area_e (GdkW
   
   if (!GDK_WINDOW_DESTROYED (window))
     {
+      GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
       RECT rect;
+
+      if (width == 0)
+	width = impl->width - x;
+      if (height == 0)
+	height = impl->height - y;
 
       GDK_NOTE (MISC, g_print ("_gdk_windowing_window_clear_area_e: %p: "
 			       "%dx%d@%+d%+d\n",
