diff --git a/gdl/gdl-dock-item-grip.c b/gdl/gdl-dock-item-grip.c
index 0737a0f..9b627bb 100644
--- a/gdl/gdl-dock-item-grip.c
+++ b/gdl/gdl-dock-item-grip.c
@@ -344,6 +344,7 @@ gdl_dock_item_grip_realize (GtkWidget *widget)
 
         grip->title_window = gdk_window_new (gtk_widget_get_parent_window (widget),
                                              &attributes, (GDK_WA_X | GDK_WA_Y));
+        gdk_window_ensure_native(grip->title_window);
 
         gdk_window_set_user_data (grip->title_window, grip);
         widget->window = grip->title_window;
diff --git a/gdl/gdl-dock-item.c b/gdl/gdl-dock-item.c
index 204cfce..6a934e0 100644
--- a/gdl/gdl-dock-item.c
+++ b/gdl/gdl-dock-item.c
@@ -848,6 +848,7 @@ gdl_dock_item_realize (GtkWidget *widget)
     attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
     widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), 
                                      &attributes, attributes_mask);
+    gdk_window_ensure_native(widget->window);
     gdk_window_set_user_data (widget->window, widget);
   
     widget->style = gtk_style_attach (widget->style, widget->window);
diff --git a/gdl/gdl-dock-tablabel.c b/gdl/gdl-dock-tablabel.c
index bd75589..69cc53c 100644
--- a/gdl/gdl-dock-tablabel.c
+++ b/gdl/gdl-dock-tablabel.c
@@ -546,6 +546,7 @@ gdl_dock_tablabel_realize (GtkWidget *widget)
     tablabel->event_window = 
         gdk_window_new (gtk_widget_get_parent_window (widget),
                         &attributes, attributes_mask);
+    gdk_window_ensure_native(tablabel->event_window);
     gdk_window_set_user_data (tablabel->event_window, widget);
     
     widget->style = gtk_style_attach (widget->style, widget->window);
