Merge remote-tracking branch 'afaerber/cocoa-for-upstream' into staging
diff --git a/MAINTAINERS b/MAINTAINERS
index bccdd4f..7ee301e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -451,6 +451,11 @@
 S: Maintained
 F: ui/
 
+Cocoa graphics
+M: Andreas Färber <andreas.faerber@web.de>
+S: Odd Fixes
+F: ui/cocoa.m
+
 Main loop
 M: Anthony Liguori <aliguori@us.ibm.com>
 S: Supported
diff --git a/ui/cocoa.m b/ui/cocoa.m
index d9e4e3d..0711205 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -811,6 +811,8 @@
 
         char **argv = (char**)malloc( sizeof(char*)*3 );
 
+        [sheet close];
+
         asprintf(&argv[0], "%s", bin);
         asprintf(&argv[1], "-hda");
         asprintf(&argv[2], "%s", img);
diff --git a/vl.c b/vl.c
index b56e0cb..624da0f 100644
--- a/vl.c
+++ b/vl.c
@@ -2185,7 +2185,9 @@
     error_set_progname(argv[0]);
 
     g_mem_set_vtable(&mem_trace);
-    g_thread_init(NULL);
+    if (!g_thread_supported()) {
+        g_thread_init(NULL);
+    }
 
     runstate_init();