Index: /trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp	(revision 56610)
+++ /trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp	(revision 56611)
@@ -2373,7 +2373,13 @@
                 Assert(cThisTime <= cMaxThisTime); /* cThisTime is now how many transfers we have left. */
 
+                uint32_t const cActual  = cMaxThisTime - cThisTime;
+                if (cActual)
+                {   /* Must dirty the page.  */
+                    uint8_t b = *(uint8_t *)pvDst;
+                    iomRamWrite(pVCpu, pRegFrame, GCPtrDst, &b, 1);
+                }
+
                 PGMPhysReleasePageMappingLock(pVM, &Lock);
 
-                uint32_t const cActual  = cMaxThisTime - cThisTime;
                 uint32_t const cbActual = cActual * cbTransfer;
                 cTransfers    -= cActual;
