Index: /trunk/src/VBox/Main/src-client/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 51983)
+++ /trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 51984)
@@ -2396,4 +2396,29 @@
 
     pFBInfo->pFramebuffer.setNull();
+
+    alock.release();
+
+#if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL)
+    Console::SafeVMPtrQuiet ptrVM(mParent);
+    if (ptrVM.isOk())
+    {
+        BOOL fIs3DEnabled = FALSE;
+        mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&fIs3DEnabled);
+
+        if (fIs3DEnabled)
+        {
+            VBOXCRCMDCTL_HGCM data;
+            RT_ZERO(data);
+            data.Hdr.enmType = VBOXCRCMDCTL_TYPE_HGCM;
+            data.Hdr.u32Function = SHCRGL_HOST_FN_SCREEN_CHANGED;
+
+            data.aParms[0].type = VBOX_HGCM_SVC_PARM_32BIT;
+            data.aParms[0].u.uint32 = aScreenId;
+
+            int vrc = crCtlSubmitSync(&data.Hdr, sizeof(data));
+            AssertRC(vrc);
+        }
+    }
+#endif /* defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) */
 
     return S_OK;
@@ -3649,5 +3674,5 @@
     pData->aParms[4].u.uint32 = height;
 
-    return crCtlSubmitSyncIfHasDataForScreen(aScreenId, &pData->Hdr, cbData);
+    return crCtlSubmitSyncIfHasDataForScreen(aScreenId, &pData->Hdr, (uint32_t)cbData);
 }
 #endif
