--- gdkwindow-win32.c.orig	Tue Jul  6 14:55:09 2004
+++ gdkwindow-win32.c	Tue Jul  6 14:55:09 2004
@@ -448,10 +448,11 @@
   return klass;
 }
 
-GdkWindow*
-gdk_window_new (GdkWindow     *parent,
+static GdkWindow*
+gdk_window_new_internal (GdkWindow     *parent,
 		GdkWindowAttr *attributes,
-		gint           attributes_mask)
+		gint           attributes_mask,
+		gboolean       from_set_skip_taskbar_hint)
 {
   HANDLE hparent;
   ATOM klass = 0;
@@ -586,7 +587,7 @@
       dwStyle = WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
       /* a temp window is not necessarily a top level window */
       dwStyle |= (_gdk_parent_root == parent ? WS_POPUP : WS_CHILDWINDOW);
-      dwExStyle |= WS_EX_TOOLWINDOW;
+      dwExStyle |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
       offset_x = _gdk_offset_x;
       offset_y = _gdk_offset_y;
       break;
@@ -720,6 +721,11 @@
   gdk_win32_handle_table_insert (&GDK_WINDOW_HWND (window), window);
 #endif
 
+  if (!from_set_skip_taskbar_hint
+	  && private->window_type == GDK_WINDOW_TEMP
+	  && _gdk_parent_root == parent) {
+	  gdk_window_set_skip_taskbar_hint (window, TRUE);
+  }
   gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
 				  (attributes->cursor) :
 				  NULL));
@@ -727,6 +733,14 @@
   return window;
 }
 
+GdkWindow*
+gdk_window_new (GdkWindow     *parent,
+		GdkWindowAttr *attributes,
+		gint           attributes_mask)
+{
+	return gdk_window_new_internal (parent, attributes, attributes_mask, FALSE);
+}
+
 GdkWindow *
 gdk_window_foreign_new_for_display (GdkDisplay      *display,
                                     GdkNativeWindow  anid)
@@ -3073,7 +3087,7 @@
 	  wa.wclass = GDK_INPUT_OUTPUT;
 	  wa.width = wa.height = 1;
 	  wa.event_mask = 0;
-	  owner = gdk_window_new (NULL, &wa, 0);
+	  owner = gdk_window_new_internal (NULL, &wa, 0, TRUE);
 	}
 
       SetWindowLong (GDK_WINDOW_HWND (window), GWL_HWNDPARENT,
