Index: /trunk/include/VBox/VBoxVideo.h
===================================================================
--- /trunk/include/VBox/VBoxVideo.h	(revision 50773)
+++ /trunk/include/VBox/VBoxVideo.h	(revision 50774)
@@ -1711,5 +1711,6 @@
 {
     uint32_t cPagesAfterFirst  : 12;
-    VBOXCMDVBVAPHADDR iPage    : 52;
+    uint32_t iPage1            : 20;
+    uint32_t iPage2;
 } VBOXCMDVBVA_SYSMEMEL;
 
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp	(revision 50773)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVbva.cpp	(revision 50774)
@@ -1088,15 +1088,13 @@
     uint32_t cbEl = sizeof (*pEl);
     uint32_t cStoredPages = 1;
-    pEl->iPage = cur;
+    PFN_NUMBER next;
+    pEl->iPage1 = (uint32_t)(cur & 0xfffff);
+    pEl->iPage2 = (uint32_t)(cur >> 20);
     --cPages;
-    for ( ; cPages && cStoredPages < VBOXCMDVBVA_SYSMEMEL_CPAGES_MAX; --cPages, ++cStoredPages)
-    {
-        PFN_NUMBER next = MmGetMdlPfnArray(pMdl)[iPfn+cStoredPages];
+    for ( ; cPages && cStoredPages < VBOXCMDVBVA_SYSMEMEL_CPAGES_MAX; --cPages, ++cStoredPages, cur = next;)
+    {
+        next = MmGetMdlPfnArray(pMdl)[iPfn+cStoredPages];
         if (next != cur+1)
             break;
-
-        cur = next;
-        ++cStoredPages;
-        --cPages;
     }
 
