Index: /trunk/src/VBox/Main/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 30031)
+++ /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 30032)
@@ -3637,5 +3637,5 @@
 DECLCALLBACK(void) Display::displayVBVAUpdateProcess(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, const PVBVACMDHDR pCmd, size_t cbCmd)
 {
-    LogFlowFunc(("uScreenId %d pCmd %p cbCmd %d\n", uScreenId, pCmd, cbCmd));
+    LogFlowFunc(("uScreenId %d pCmd %p cbCmd %d, @%d,%d %dx%d\n", uScreenId, pCmd, cbCmd, pCmd->x, pCmd->y, pCmd->w, pCmd->h));
 
     PDRVMAINDISPLAY pDrv = PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface);
@@ -3647,4 +3647,5 @@
         if (pFBInfo->fDefaultFormat)
         {
+            /* Make sure that framebuffer contains the same image as the guest VRAM. */
             if (uScreenId == VBOX_VIDEO_PRIMARY_SCREEN)
             {
@@ -3689,9 +3690,17 @@
                 }
             }
-            pThis->handleDisplayUpdate (pCmd->x + pFBInfo->xOrigin,
-                                        pCmd->y + pFBInfo->yOrigin, pCmd->w, pCmd->h);
-        }
-
+        }
+
+        VBVACMDHDR hdrSaved = *pCmd;
+
+        VBVACMDHDR *pHdrUnconst = (VBVACMDHDR *)pCmd;
+
+        pHdrUnconst->x -= (int16_t)pFBInfo->xOrigin;
+        pHdrUnconst->y -= (int16_t)pFBInfo->yOrigin;
+
+        /* @todo new SendUpdate entry which can get a separate cmd header or coords. */
         pThis->mParent->consoleVRDPServer()->SendUpdate (uScreenId, pCmd, cbCmd);
+
+        *pHdrUnconst = hdrSaved;
     }
 }
@@ -3810,5 +3819,11 @@
     if (!fResize)
     {
-        /* No paramaters of the framebuffer have actually changed. */
+        /* No parameters of the framebuffer have actually changed. */
+        if (fNewOrigin)
+        {
+            /* VRDP server still need this notification. */
+            LogFlowFunc (("Calling VRDP\n"));
+            pThis->mParent->consoleVRDPServer()->SendResize();
+        }
         return VINF_SUCCESS;
     }
