Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 76061)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp	(revision 76062)
@@ -3125,8 +3125,13 @@
 }
 
-void UIActionPoolRuntime::setHostScreenForGuestScreenMap(const QMap<int, int> &map)
-{
-    m_mapHostScreenForGuestScreen = map;
+void UIActionPoolRuntime::setHostScreenForGuestScreenMap(const QMap<int, int> &scheme)
+{
+    m_mapHostScreenForGuestScreen = scheme;
     m_invalidations << UIActionIndexRT_M_View << UIActionIndexRT_M_ViewPopup;
+}
+
+QMap<int, int> UIActionPoolRuntime::hostScreenForGuestScreenMap() const
+{
+    return m_mapHostScreenForGuestScreen;
 }
 
@@ -3300,5 +3305,5 @@
 }
 
-void UIActionPoolRuntime::sltHandleActionTriggerViewRescale(QAction *pAction)
+void UIActionPoolRuntime::sltHandleActionTriggerViewScreenRescale(QAction *pAction)
 {
     /* Make sure sender is valid: */
@@ -3984,5 +3989,5 @@
         /* Get device-pixel-ratio: */
         bool fDevicePixelRatioMentioned = false;
-        const double dDevicePixelRatioActual = qMin(gpDesktop->devicePixelRatioActual(),
+        const double dDevicePixelRatioActual = qMin(gpDesktop->devicePixelRatioActual(m_mapHostScreenForGuestScreen.value(iGuestScreenIndex)),
                                                     10.0 /* meh, who knows? */);
 
@@ -4045,5 +4050,5 @@
         /* Install listener for exclusive action-group: */
         connect(pActionGroup, &QActionGroup::triggered,
-                this, &UIActionPoolRuntime::sltHandleActionTriggerViewRescale);
+                this, &UIActionPoolRuntime::sltHandleActionTriggerViewScreenRescale);
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 76061)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h	(revision 76062)
@@ -166,6 +166,8 @@
     void setGuestSupportsGraphics(bool fSupports);
 
-    /** Defines host-to-guest mapping scheme. */
-    void setHostScreenForGuestScreenMap(const QMap<int, int> &map);
+    /** Defines host-to-guest mapping @a scheme. */
+    void setHostScreenForGuestScreenMap(const QMap<int, int> &scheme);
+    /** Returns host-to-guest mapping scheme. */
+    QMap<int, int> hostScreenForGuestScreenMap() const;
 
     /** Returns whether the action with passed @a type is allowed in the 'Machine' menu. */
@@ -211,5 +213,5 @@
     void sltHandleActionTriggerViewScreenRemap(QAction *pAction);
     /** Handles 'View' : 'Virtual Screen #' menu : 'Rescale' @a pAction trigger. */
-    void sltHandleActionTriggerViewRescale(QAction *pAction);
+    void sltHandleActionTriggerViewScreenRescale(QAction *pAction);
 
 protected:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp	(revision 76061)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp	(revision 76062)
@@ -28,4 +28,5 @@
 /* GUI includes: */
 # include "VBoxGlobal.h"
+# include "UIActionPoolRuntime.h"
 # include "UIDesktopWidgetWatchdog.h"
 # include "UIExtraDataManager.h"
@@ -1471,4 +1472,19 @@
                     /* Reapply machine-view scale-factor if necessary: */
                     applyMachineViewScaleFactor();
+                    /* For 'normal'/'scaled' visual state type: */
+                    if (   visualStateType() == UIVisualStateType_Normal
+                        || visualStateType() == UIVisualStateType_Scale)
+                    {
+                        /* Make sure action-pool is of 'runtime' type: */
+                        UIActionPoolRuntime *pActionPool = actionPool() && actionPool()->toRuntime() ? actionPool()->toRuntime() : 0;
+                        AssertPtr(pActionPool);
+                        if (pActionPool)
+                        {
+                            /* Inform action-pool about current guest-to-host screen mapping: */
+                            QMap<int, int> screenMap = pActionPool->hostScreenForGuestScreenMap();
+                            screenMap[m_uScreenId] = m_iHostScreenNumber;
+                            pActionPool->setHostScreenForGuestScreenMap(screenMap);
+                        }
+                    }
                 }
                 break;
