Index: /trunk/src/VBox/VMM/PGMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/PGMInternal.h	(revision 20059)
+++ /trunk/src/VBox/VMM/PGMInternal.h	(revision 20060)
@@ -38,4 +38,5 @@
 #include <VBox/hwaccm.h>
 #include <iprt/avl.h>
+#include <iprt/asm.h>
 #include <iprt/assert.h>
 #include <iprt/critsect.h>
@@ -1644,6 +1645,8 @@
      * It's a hack required because of REMR3NotifyHandlerPhysicalDeregister. */
     bool volatile       fReusedFlushPending;
+    bool                bPadding1;
+
     /** Used to indicate that this page can't be flushed. Important for cr3 root pages or shadow pae pd pages). */
-    uint8_t             cLocked;
+    uint32_t            cLocked;
 } PGMPOOLPAGE, *PPGMPOOLPAGE, **PPPGMPOOLPAGE;
 /** Pointer to a const pool page. */
@@ -4445,5 +4448,5 @@
 DECLINLINE(void) pgmPoolLockPage(PPGMPOOL pPool, PPGMPOOLPAGE pPage)
 {
-    pPage->cLocked++;
+    ASMAtomicIncU32(&pPage->cLocked);
 }
 
@@ -4458,5 +4461,5 @@
 {
     Assert(pPage->cLocked);
-    pPage->cLocked--;
+    ASMAtomicDecU32(&pPage->cLocked);
 }
 
Index: /trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp
===================================================================
--- /trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp	(revision 20059)
+++ /trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp	(revision 20060)
@@ -673,4 +673,5 @@
     GEN_CHECK_OFF(PGMPOOLPAGE, fCached);
     GEN_CHECK_OFF(PGMPOOLPAGE, fReusedFlushPending);
+    GEN_CHECK_OFF(PGMPOOLPAGE, cLocked);
     GEN_CHECK_SIZE(PGMPOOL);
     GEN_CHECK_OFF(PGMPOOL, pVMR3);
