Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 56443)
@@ -338,4 +338,12 @@
     foreach(UIMachineWindow *pMachineWindow, machineWindows())
         pMachineWindow->adjustMachineViewSize();
+}
+
+void UIMachineLogic::sendMachineWindowsSizeHints()
+{
+    /* By default, the only thing we need is to
+     * send machine-view(s) size-hint(s) to the guest: */
+    foreach(UIMachineWindow *pMachineWindow, machineWindows())
+        pMachineWindow->sendMachineViewSizeHint();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 56443)
@@ -128,4 +128,7 @@
     virtual void adjustMachineWindowsGeometry();
 
+    /** Send machine-window(s) size-hint(s) to the guest. */
+    virtual void sendMachineWindowsSizeHints();
+
     /* Wrapper to open Machine settings / Network page: */
     void openNetworkSettingsDialog() { sltOpenNetworkSettingsDialog(); }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.h	(revision 56443)
@@ -93,4 +93,8 @@
     /* Public setters: */
     virtual void setGuestAutoresizeEnabled(bool /* fEnabled */) {}
+
+    /** Send saved guest-screen size-hint to the guest.
+      * @note Reimplemented in sub-classes. Base implementation does nothing. */
+    virtual void resendSizeHint() {}
 
     /** Adjusts guest-screen size to correspond current visual-style.
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 56443)
@@ -228,4 +228,10 @@
     /* We need to adjust guest-screen size if necessary: */
     machineView()->adjustGuestScreenSize();
+}
+
+void UIMachineWindow::sendMachineViewSizeHint()
+{
+    /* Send machine-view size-hint to the guest: */
+    machineView()->resendSizeHint();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h	(revision 56443)
@@ -84,4 +84,7 @@
     /** Adjusts machine-view size to correspond current machine-window size. */
     virtual void adjustMachineViewSize();
+
+    /** Sends machine-view size-hint to the guest. */
+    virtual void sendMachineViewSizeHint();
 
 #ifdef VBOX_WITH_MASKED_SEAMLESS
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 56443)
@@ -287,5 +287,9 @@
     }
     else
+    {
         msgCenter().showModalProgressDialog(progress, machineName(), ":/progress_start_90px.png");
+        /* After VM start, machine-window(s) size-hint(s) should be sent: */
+        machineLogic()->sendMachineWindowsSizeHints();
+    }
 
     /* Check for progress failure: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineViewNormal.cpp	(revision 56443)
@@ -137,13 +137,15 @@
 void UIMachineViewNormal::resendSizeHint()
 {
-    const QSize sizeHint = guestSizeHint();
+    /* Get the last size hint, taking the scale factor into account. */
+    const QSize sizeHint = scaledBackward(guestSizeHint());
     LogRel(("GUI: UIMachineViewNormal::resendSizeHint: Restoring guest size-hint for screen %d to %dx%d\n",
             (int)screenId(), sizeHint.width(), sizeHint.height()));
     /* Temporarily restrict the size to prevent a brief resize to the
      * framebuffer dimensions (see @a UIMachineView::sizeHint()) before
-     * the following resize() is acted upon. */
+     * the following resize() is acted upon.  Expand current limitations
+     * too. */
     setMaximumSize(sizeHint);
     m_sizeHintOverride = sizeHint;
-    sltPerformGuestResize(sizeHint);
+    display().SetVideoModeHint(screenId(), true, false, 0, 0, sizeHint.width(), sizeHint.height(), 0);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp	(revision 56442)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineViewScale.cpp	(revision 56443)
@@ -153,8 +153,10 @@
 void UIMachineViewScale::resendSizeHint()
 {
-    const QSize sizeHint = guestSizeHint();
+    const QSize sizeHint = scaledBackward(guestSizeHint());
     LogRel(("GUI: UIMachineViewScale::resendSizeHint: Restoring guest size-hint for screen %d to %dx%d\n",
             (int)screenId(), sizeHint.width(), sizeHint.height()));
-    sltPerformGuestResize(sizeHint);
+    /* Expand current limitations: */
+    setMaxGuestSize(sizeHint);
+    display().SetVideoModeHint(screenId(), true, false, 0, 0, sizeHint.width(), sizeHint.height(), 0);
 }
 
