Index: /trunk/src/VBox/VMM/VMMR0/GMMR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/GMMR0.cpp	(revision 43234)
+++ /trunk/src/VBox/VMM/VMMR0/GMMR0.cpp	(revision 43235)
@@ -1215,4 +1215,5 @@
          * shared pages will be 'left behind'.)
          */
+        /** @todo r=bird: This scanning+freeing could be optimized in bound mode! */
         uint64_t    cPrivatePages = pGVM->gmm.s.Stats.cPrivatePages; /* save */
 
@@ -1226,5 +1227,7 @@
             {
                 uint32_t const cFreeChunksOld = pGMM->cFreedChunks;
-                if (gmmR0CleanupVMScanChunk(pGMM, pGVM, pChunk))
+                if (   (   !pGMM->fBoundMemoryMode
+                        || pChunk->hGVM == pGVM->hSelf)
+                    && gmmR0CleanupVMScanChunk(pGMM, pGVM, pChunk))
                 {
                     /* We left the giant mutex, so reset the yield counters. */
@@ -1241,5 +1244,8 @@
                 }
                 if (pGMM->cFreedChunks != cFreeChunksOld)
+                {
+                    fRedoFromStart = true;
                     break;
+                }
             }
         } while (fRedoFromStart);
@@ -1349,4 +1355,6 @@
 static bool gmmR0CleanupVMScanChunk(PGMM pGMM, PGVM pGVM, PGMMCHUNK pChunk)
 {
+    Assert(!pGMM->fBoundMemoryMode || pChunk->hGVM == pGVM->hSelf);
+
     /*
      * Look for pages belonging to the VM.
