diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index a48b691ab2c7b76b450b30e34ca2e3e390c314fa..7371cbc9f2f155f1f9f68b21d03029497525d4a3 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -1801,8 +1801,11 @@ void macdrv_destroy_cocoa_window(macdrv_window w)
     NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
     WineWindow* window = (WineWindow*)w;
 
+    OnMainThread(^{
+        [window doOrderOut];
+        [window close];
+    });
     [window.queue discardEventsMatchingMask:-1 forWindow:window];
-    [window close];
     [window release];
 
     [pool release];