Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 41486)
@@ -612,4 +612,30 @@
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 
+bool UIMachineWindow::shouldWeShowWindow() const
+{
+    /* By default, every window should be shown: */
+    bool fResult = true;
+    /* But if machine is 'turned off': */
+    if (uisession()->isTurnedOff())
+    {
+        /* If machine is in 'saved' state: */
+        if (uisession()->isSaved())
+        {
+            /* We are getting shown-state from saved-state: */
+            BOOL fEnabled = true;
+            ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;
+            machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);
+            fResult = fEnabled;
+        }
+        /* If machine is in 'powered off', 'teleported' or 'aborted' state: */
+        else
+        {
+            /* Shown-state is 'enabled' only for 1st monitor: */
+            fResult = m_uScreenId == 0;
+        }
+    }
+    return fResult;
+}
+
 /* static */
 Qt::WindowFlags UIMachineWindow::windowFlags(UIVisualStateType visualStateType)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h	(revision 41486)
@@ -109,4 +109,5 @@
 
     /* Helpers: */
+    bool shouldWeShowWindow() const;
     const QString& defaultWindowTitle() const { return m_strWindowTitlePrefix; }
     static Qt::WindowFlags windowFlags(UIVisualStateType visualStateType);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 41486)
@@ -165,9 +165,6 @@
 void UIMachineWindowFullscreen::showInNecessaryMode()
 {
-    /* Make sure we really have to show window: */
-    BOOL fEnabled = true;
-    ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;
-    machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);
-    if (fEnabled)
+    /* Show window if we have to: */
+    if (shouldWeShowWindow())
     {
         /* Make sure the window is placed on valid screen
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 41486)
@@ -505,9 +505,6 @@
 void UIMachineWindowNormal::showInNecessaryMode()
 {
-    /* Make sure we really have to show window: */
-    BOOL fEnabled = true;
-    ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;
-    machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);
-    if (fEnabled)
+    /* Show window if we have to: */
+    if (shouldWeShowWindow())
         show();
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 41486)
@@ -199,9 +199,6 @@
 void UIMachineWindowScale::showInNecessaryMode()
 {
-    /* Make sure we really have to show window: */
-    BOOL fEnabled = true;
-    ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;
-    machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);
-    if (fEnabled)
+    /* Show window if we have to: */
+    if (shouldWeShowWindow())
         show();
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 41485)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 41486)
@@ -219,9 +219,6 @@
 void UIMachineWindowSeamless::showInNecessaryMode()
 {
-    /* Make sure we really have to show window: */
-    BOOL fEnabled = true;
-    ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;
-    machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);
-    if (fEnabled)
+    /* Show window if we have to: */
+    if (shouldWeShowWindow())
     {
         /* Show manually maximized window: */
