Index: /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp	(revision 76052)
+++ /trunk/src/VBox/Runtime/r0drv/nt/initterm-r0drv-nt.cpp	(revision 76053)
@@ -273,4 +273,15 @@
 {
     /*
+     * Preinitialize g_uRtNtVersion so RTMemAlloc uses the right kind of pool
+     * when RTR0DbgKrnlInfoOpen calls it.
+     */
+    RTNTSDBOSVER OsVerInfo;
+    rtR0NtGetOsVersionInfo(&OsVerInfo);
+    g_uRtNtVersion  = RTNT_MAKE_VERSION(OsVerInfo.uMajorVer, OsVerInfo.uMinorVer);
+    g_uRtNtMinorVer = OsVerInfo.uMinorVer;
+    g_uRtNtMajorVer = OsVerInfo.uMajorVer;
+    g_uRtNtBuildNo  = OsVerInfo.uBuildNo;
+
+    /*
      * Initialize the function pointers.
      */
@@ -340,5 +351,15 @@
 
     /*
-     * HACK ALERT! (and déjà vu warning - remember win32k.sys?)
+     * Get and publish the definitive NT version.
+     */
+    rtR0NtGetOsVersionInfo(&OsVerInfo);
+    g_uRtNtVersion  = RTNT_MAKE_VERSION(OsVerInfo.uMajorVer, OsVerInfo.uMinorVer);
+    g_uRtNtMinorVer = OsVerInfo.uMinorVer;
+    g_uRtNtMajorVer = OsVerInfo.uMajorVer;
+    g_uRtNtBuildNo  = OsVerInfo.uBuildNo;
+
+
+    /*
+     * HACK ALERT! (and déjà vu warning - remember win32k.sys on OS/2?)
      *
      * Try find _KPRCB::QuantumEnd and _KPRCB::[DpcData.]DpcQueueDepth.
@@ -357,13 +378,4 @@
      * be distinguishable from another.
      */
-
-    RTNTSDBOSVER OsVerInfo;
-    rtR0NtGetOsVersionInfo(&OsVerInfo);
-
-    /* Publish the version info in globals. */
-    g_uRtNtVersion  = RTNT_MAKE_VERSION(OsVerInfo.uMajorVer, OsVerInfo.uMinorVer);
-    g_uRtNtMinorVer = OsVerInfo.uMinorVer;
-    g_uRtNtMajorVer = OsVerInfo.uMajorVer;
-    g_uRtNtBuildNo  = OsVerInfo.uBuildNo;
 
     /*
