Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm	(revision 50504)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin-cocoa.mm	(revision 50505)
@@ -190,4 +190,9 @@
 }
 
+void darwinEnableTransienceSupport(NativeNSWindowRef pWindow)
+{
+    [pWindow setCollectionBehavior :NSWindowCollectionBehaviorTransient];
+}
+
 void darwinToggleFullscreenMode(NativeNSWindowRef pWindow)
 {
@@ -196,4 +201,14 @@
     if ([pWindow respondsToSelector: @selector(toggleFullScreen:)])
         [pWindow performSelector: @selector(toggleFullScreen:) withObject: (id)nil];
+}
+
+bool darwinScreensHaveSeparateSpaces()
+{
+    /* Check whether screens have separate spaces.
+     * This method is available since 10.9 only. */
+    if ([NSScreen respondsToSelector: @selector(screensHaveSeparateSpaces)])
+        return [NSScreen performSelector: @selector(screensHaveSeparateSpaces)];
+    else
+        return false;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp	(revision 50504)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.cpp	(revision 50505)
@@ -142,4 +142,9 @@
 {
     return ::darwinEnableFullscreenSupport(::darwinToNativeWindow(pWidget));
+}
+
+void darwinEnableTransienceSupport(QWidget *pWidget)
+{
+    return ::darwinEnableTransienceSupport(::darwinToNativeWindow(pWidget));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h	(revision 50504)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/VBoxUtils-darwin.h	(revision 50505)
@@ -80,5 +80,7 @@
 void darwinMinaturizeWindow(NativeNSWindowRef pWindow);
 void darwinEnableFullscreenSupport(NativeNSWindowRef pWindow);
+void darwinEnableTransienceSupport(NativeNSWindowRef pWindow);
 void darwinToggleFullscreenMode(NativeNSWindowRef pWindow);
+bool darwinScreensHaveSeparateSpaces();
 
 bool darwinOpenFile(NativeNSStringRef pstrFile);
@@ -243,4 +245,5 @@
 void darwinMinaturizeWindow(QWidget *pWidget);
 void darwinEnableFullscreenSupport(QWidget *pWidget);
+void darwinEnableTransienceSupport(QWidget *pWidget);
 void darwinToggleFullscreenMode(QWidget *pWidget);
 bool darwinOpenFile(const QString &strFile);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 50504)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 50505)
@@ -506,10 +506,5 @@
     {
         case UIVisualStateType_Normal: return Qt::Window;
-#ifdef Q_WS_MAC
-        /* We want normal window for native fullscreen mode on ML and next: */
-        case UIVisualStateType_Fullscreen: return vboxGlobal().osRelease() > MacOSXRelease_Lion ? Qt::Window : Qt::FramelessWindowHint;
-#else /* !Q_WS_MAC */
         case UIVisualStateType_Fullscreen: return Qt::FramelessWindowHint;
-#endif /* !Q_WS_MAC */
         case UIVisualStateType_Seamless: return Qt::FramelessWindowHint;
         case UIVisualStateType_Scale: return Qt::Window;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 50504)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 50505)
@@ -134,6 +134,10 @@
     if (vboxGlobal().osRelease() > MacOSXRelease_Lion)
     {
-        /* Enable native fullscreen support: */
-        darwinEnableFullscreenSupport(this);
+        /* Enable fullscreen support for every screen which requires it: */
+        if (darwinScreensHaveSeparateSpaces() || m_uScreenId == 0)
+            darwinEnableFullscreenSupport(this);
+        /* Enable transience support for other screens: */
+        else
+            darwinEnableTransienceSupport(this);
         /* Register to native fullscreen notifications: */
         UICocoaApplication::instance()->registerToNativeNotification("NSWindowDidEnterFullScreenNotification", this,
@@ -141,6 +145,7 @@
         UICocoaApplication::instance()->registerToNativeNotification("NSWindowDidExitFullScreenNotification", this,
                                                                      UIMachineWindow::handleNativeNotification);
-        /* Asynchronously toggle native fullscreen mode: */
-        QTimer::singleShot(0, this, SLOT(sltToggleNativeFullscreenMode()));
+        /* Asynchronously toggle fullscreen mode for every screen which requires it: */
+        if (darwinScreensHaveSeparateSpaces() || m_uScreenId == 0)
+            QTimer::singleShot(0, this, SLOT(sltToggleNativeFullscreenMode()));
     }
 #endif /* Q_WS_MAC */
