diff --git a/windows/win.c b/windows/win.c
index a2fa889e51169ed0ba57e2ae5095d56521cc9968..fb656bc3d5c1a36ddf0b9cbd9e324d57f387fab6 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -507,8 +507,16 @@ static WND* WIN_DestroyWindow( WND* wndPtr )
     }
 
     if (!(wndPtr->dwStyle & WS_CHILD))
-       if (wndPtr->wIDmenu) DestroyMenu( (HMENU)wndPtr->wIDmenu );
-    if (wndPtr->hSysMenu) DestroyMenu( wndPtr->hSysMenu );
+       if (wndPtr->wIDmenu)
+       {
+	   DestroyMenu( wndPtr->wIDmenu );
+	   wndPtr->wIDmenu = 0;
+       }
+    if (wndPtr->hSysMenu)
+    {
+	DestroyMenu( wndPtr->hSysMenu );
+	wndPtr->hSysMenu = 0;
+    }
     wndPtr->pDriver->pDestroyWindow( wndPtr );
     DCE_FreeWindowDCE( wndPtr );    /* Always do this to catch orphaned DCs */ 
     WINPROC_FreeProc( wndPtr->winproc, WIN_PROC_WINDOW );