diff -u gdkevents-win32.c.orig gdkevents-win32.c
--- gdkevents-win32.c.orig	Mon Mar 22 10:38:52 2004
+++ gdkevents-win32.c	Mon Mar 22 10:31:26 2004
@@ -2821,7 +2821,11 @@
     case WM_SETFOCUS:
     case WM_KILLFOCUS:
       if (p_grab_window != NULL && !p_grab_owner_events && !(p_grab_mask & GDK_FOCUS_CHANGE_MASK))
-	break;
+	{
+	  if (msg->message == WM_SETFOCUS)
+	    SetFocus ((HWND) msg->wParam);
+	  break;
+	}
 
       if (!(((GdkWindowObject *) window)->event_mask & GDK_FOCUS_CHANGE_MASK))
 	break;
