Index: /trunk/src/VBox/VMM/PGMPhys.cpp
===================================================================
--- /trunk/src/VBox/VMM/PGMPhys.cpp	(revision 30825)
+++ /trunk/src/VBox/VMM/PGMPhys.cpp	(revision 30826)
@@ -3272,37 +3272,32 @@
 static DECLCALLBACK(int) pgmR3PhysChunkUnmapCandidateCallback(PAVLLU32NODECORE pNode, void *pvUser)
 {
-    do
-    {
-        PPGMCHUNKR3MAP pChunk = (PPGMCHUNKR3MAP)((uint8_t *)pNode - RT_OFFSETOF(PGMCHUNKR3MAP, AgeCore));
-        if (    pChunk->iAge
-            &&  !pChunk->cRefs)
-        {
-            /*
-             * Check that it's not in any of the TLBs.
-             */
-            PVM pVM = ((PPGMR3PHYSCHUNKUNMAPCB)pvUser)->pVM;
-            for (unsigned i = 0; i < RT_ELEMENTS(pVM->pgm.s.ChunkR3Map.Tlb.aEntries); i++)
-                if (pVM->pgm.s.ChunkR3Map.Tlb.aEntries[i].pChunk == pChunk)
+    PPGMCHUNKR3MAP pChunk = (PPGMCHUNKR3MAP)((uint8_t *)pNode - RT_OFFSETOF(PGMCHUNKR3MAP, AgeCore));
+    if (    pChunk->iAge
+        &&  !pChunk->cRefs)
+    {
+        /*
+            * Check that it's not in any of the TLBs.
+            */
+        PVM pVM = ((PPGMR3PHYSCHUNKUNMAPCB)pvUser)->pVM;
+        for (unsigned i = 0; i < RT_ELEMENTS(pVM->pgm.s.ChunkR3Map.Tlb.aEntries); i++)
+            if (pVM->pgm.s.ChunkR3Map.Tlb.aEntries[i].pChunk == pChunk)
+            {
+                pChunk = NULL;
+                break;
+            }
+        if (pChunk)
+            for (unsigned i = 0; i < RT_ELEMENTS(pVM->pgm.s.PhysTlbHC.aEntries); i++)
+                if (pVM->pgm.s.PhysTlbHC.aEntries[i].pMap == pChunk)
                 {
                     pChunk = NULL;
                     break;
                 }
-            if (pChunk)
-                for (unsigned i = 0; i < RT_ELEMENTS(pVM->pgm.s.PhysTlbHC.aEntries); i++)
-                    if (pVM->pgm.s.PhysTlbHC.aEntries[i].pMap == pChunk)
-                    {
-                        pChunk = NULL;
-                        break;
-                    }
-            if (pChunk)
-            {
-                ((PPGMR3PHYSCHUNKUNMAPCB)pvUser)->pChunk = pChunk;
-                return 1; /* done */
-            }
-        }
-
-        /* next with the same age - this version of the AVL API doesn't enumerate the list, so we have to do it. */
-        pNode = pNode->pList;
-    } while (pNode);
+        if (pChunk)
+        {
+            ((PPGMR3PHYSCHUNKUNMAPCB)pvUser)->pChunk = pChunk;
+            return 1; /* done */
+        }
+    }
+
     return 0;
 }
