-    if (!win->HasVMT()) return;
-    
-    gtk_draw_shadow( widget->style, 
-                     widget->window,
-                    GTK_STATE_NORMAL,
-                    GTK_SHADOW_OUT,
-                    0, 0,
-                    win->m_width, win->m_height );
+    if (g_isIdle) wxapp_install_idle_handler();
+
+    if (!win->m_hasVMT) return;
+
+    GtkPizza *pizza = GTK_PIZZA(widget);
+
+    gtk_draw_shadow( widget->style,
+                     pizza->bin_window,
+                     GTK_STATE_NORMAL,
+                     GTK_SHADOW_OUT,
+                     0, 0,
+                     win->m_width, win->m_height );
+
+    if (!win->m_title.IsEmpty() &&
+        ((win->GetWindowStyle() & wxCAPTION) ||
+         (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) ||
+         (win->GetWindowStyle() & wxTINY_CAPTION_VERT)))
+    {
+        wxClientDC dc(win);
+        dc.SetFont( *wxSMALL_FONT );
+        int height = dc.GetCharHeight();
+        
+        GdkGC *gc = gdk_gc_new( pizza->bin_window );
+        gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] );
+        gdk_draw_rectangle( pizza->bin_window, gc, TRUE,
+                            3,
+                            3,
+                            win->m_width - 7,
+                            height+1 );
+        gdk_gc_unref( gc );
+
+        // Hack alert
+        dc.m_window = pizza->bin_window;
+        dc.SetTextForeground( *wxWHITE );
+        dc.DrawText( win->GetTitle(), 6, 3 );
+    }
+}