Fixed some bugs in thread safeness for wnd struct.

diff --git a/controls/menu.c b/controls/menu.c
index cd406b4..14af490 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -3544,8 +3544,6 @@
 	        (!pTPWnd || (lppop->hWnd != pTPWnd->hwndSelf)))
 	        DestroyWindow( lppop->hWnd );
 
-            MENU_ReleaseTopPopupWnd();
-            
 	    if (lppop->items)	/* recursively destroy submenus */
 	    {
 	        int i;
@@ -3558,8 +3556,13 @@
 	        HeapFree( SystemHeap, 0, lppop->items );
 	    }
 	    USER_HEAP_FREE( hMenu );
+            MENU_ReleaseTopPopupWnd();
 	}
-	else return FALSE;
+        else
+        {
+            MENU_ReleaseTopPopupWnd();
+            return FALSE;
+        }
     }
     return (hMenu != MENU_DefSysPopup);
 }