diff --git a/windows/winpos.c b/windows/winpos.c
index f288fcbfaa314a3562bbaa5a16ea91be1df07c78..3af64a94455e4d8fd9d27e6173fb4a99ae8233d2 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -1377,7 +1377,7 @@ BOOL WINPOS_SetActiveWindow( HWND hWnd, BOOL fMouse, BOOL fChangeFocus)
         {
             HWND hOldFocus = PERQDATA_GetFocusWnd( pNewActiveQueue->pQData );
 
-            if ( hOldFocus && GetAncestor( hOldFocus, GA_ROOT ) != hwndActive )
+            if ( !hOldFocus || GetAncestor( hOldFocus, GA_ROOT ) != hwndActive )
                 FOCUS_SwitchFocus( pNewActiveQueue, hOldFocus, 
                                    (wndPtr && (wndPtr->dwStyle & WS_MINIMIZE))?
                                    0 : hwndActive );