diff -urN vbox-clean-bk\src\VBox\VMM/include/EMInternal.h vbox-clean\src\VBox\VMM/include/EMInternal.h
--- vbox-clean-bk\src\VBox\VMM/include/EMInternal.h	2015-09-23 07:14:20.000000000 +0300
+++ vbox-clean\src\VBox\VMM/include/EMInternal.h	2015-09-27 00:39:06.000000000 +0300
@@ -73,8 +73,10 @@
     STAMCOUNTER             Counter;
 } CLISTAT, *PCLISTAT;
 #ifdef IN_RING3
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(CLISTAT, Counter, 8);
 #endif
+#endif
 
 
 /**
diff -urN vbox-clean-bk\src\VBox\VMM/include/PDMInternal.h vbox-clean\src\VBox\VMM/include/PDMInternal.h
--- vbox-clean-bk\src\VBox\VMM/include/PDMInternal.h	2015-09-23 07:14:22.000000000 +0300
+++ vbox-clean\src\VBox\VMM/include/PDMInternal.h	2015-09-27 00:44:50.000000000 +0300
@@ -314,7 +314,9 @@
     /** Profiling the time the section is locked. */
     STAMPROFILEADV                  StatLocked;
 } PDMCRITSECTINT;
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(PDMCRITSECTINT, StatContentionRZLock, 8);
+#endif
 /** Pointer to private critical section data. */
 typedef PDMCRITSECTINT *PPDMCRITSECTINT;
 
@@ -374,8 +376,10 @@
     /** Profiling the time the section is write locked. */
     STAMPROFILEADV                      StatWriteLocked;
 } PDMCRITSECTRWINT;
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(PDMCRITSECTRWINT, StatContentionRZEnterExcl, 8);
 AssertCompileMemberAlignment(PDMCRITSECTRWINT, Core.u64State, 8);
+#endif
 /** Pointer to private critical section data. */
 typedef PDMCRITSECTRWINT *PPDMCRITSECTRWINT;
 
@@ -1142,9 +1146,11 @@
     /** Number of times a critical section leave request needed to be queued for ring-3 execution. */
     STAMCOUNTER                     StatQueuedCritSectLeaves;
 } PDM;
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(PDM, GCPhysVMMDevHeap, sizeof(RTGCPHYS));
 AssertCompileMemberAlignment(PDM, CritSect, 8);
 AssertCompileMemberAlignment(PDM, StatQueuedCritSectLeaves, 8);
+#endif
 /** Pointer to PDM VM instance data. */
 typedef PDM *PPDM;
 
diff -urN vbox-clean-bk\src\VBox\VMM/include/PGMInternal.h vbox-clean\src\VBox\VMM/include/PGMInternal.h
--- vbox-clean-bk\src\VBox\VMM/include/PGMInternal.h	2015-09-23 07:14:22.000000000 +0300
+++ vbox-clean\src\VBox\VMM/include/PGMInternal.h	2015-09-27 00:38:32.000000000 +0300
@@ -2009,8 +2009,10 @@
     /** The physical address for this entry. */
     RTHCPHYS                    HCPhys;
 } PGMMAPSETENTRY;
+#if !defined(RT_OS_OS2)
 AssertCompileMemberOffset(PGMMAPSETENTRY, iPage, RT_MAX(sizeof(RTR0PTR), sizeof(RTRCPTR)));
 AssertCompileMemberAlignment(PGMMAPSETENTRY, HCPhys, sizeof(RTHCPHYS));
+#endif
 /** Pointer to a mapping cache usage set entry. */
 typedef PGMMAPSETENTRY *PPGMMAPSETENTRY;
 
@@ -2569,6 +2571,7 @@
      */
     PGMPOOLPAGE                 aPages[PGMPOOL_IDX_FIRST];
 } PGMPOOL, *PPGMPOOL, **PPPGMPOOL;
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(PGMPOOL, iModifiedHead, 8);
 AssertCompileMemberAlignment(PGMPOOL, aDirtyPages, 8);
 AssertCompileMemberAlignment(PGMPOOL, cUsedPages, 8);
@@ -2576,6 +2579,7 @@
 AssertCompileMemberAlignment(PGMPOOL, StatAlloc, 8);
 #endif
 AssertCompileMemberAlignment(PGMPOOL, aPages, 8);
+#endif
 
 
 /** @def PGMPOOL_PAGE_2_PTR
@@ -3595,6 +3599,7 @@
 #endif
 } PGM;
 #ifndef IN_TSTVMSTRUCTGC /* HACK */
+#if !defined(RT_OS_OS2)
 AssertCompileMemberAlignment(PGM, paDynPageMap32BitPTEsGC, 8);
 AssertCompileMemberAlignment(PGM, GCPtrMappingFixed, sizeof(RTGCPTR));
 AssertCompileMemberAlignment(PGM, HCPhysInterPD, 8);
@@ -3604,6 +3609,7 @@
 AssertCompileMemberAlignment(PGM, HCPhysZeroPg, 8);
 AssertCompileMemberAlignment(PGM, aHandyPages, 8);
 AssertCompileMemberAlignment(PGM, cRelocations, 8);
+#endif
 #endif /* !IN_TSTVMSTRUCTGC */
 /** Pointer to the PGM instance data. */
 typedef PGM *PPGM;
diff -urN vbox-clean-bk\src\VBox\VMM/Makefile.kmk vbox-clean\src\VBox\VMM/Makefile.kmk
--- vbox-clean-bk\src\VBox\VMM/Makefile.kmk	2015-09-23 07:14:22.000000000 +0300
+++ vbox-clean\src\VBox\VMM/Makefile.kmk	2015-09-27 00:42:50.000000000 +0300
@@ -22,8 +22,10 @@
 ifndef VBOX_ONLY_EXTPACKS
  include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
 endif
-include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
-
+# Disabled temporarily (Out-of-memory error in NASM)
+ifn1of ($(KBUILD_TARGET),os2)
+ include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
+endif
 
 #
 # Globals
@@ -126,7 +128,8 @@
 VBoxVMM_INCS     = \
 	include \
 	$(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
-VBoxVMM_ASINCS   = .
+VBoxVMM_ASINCS   = . \
+	VMMR3
 
 VBoxVMM_SOURCES  = \
 	VBoxVMM.d \
@@ -279,10 +282,10 @@
  	VMMSwitcher/AMD64ToPAE.asm
 endif
 VBoxVMM_SOURCES.x86 += \
- 	VMMSwitcher/32BitToAMD64.asm \
- 	VMMSwitcher/PAEToAMD64.asm \
 	VMMSwitcher/X86Stub.asm
 VBoxVMM_SOURCES.amd64 += \
+ 	VMMSwitcher/32BitToAMD64.asm \
+ 	VMMSwitcher/PAEToAMD64.asm \
 	VMMSwitcher/AMD64Stub.asm
 
 VBoxVMM_LIBS = \
@@ -372,9 +375,10 @@
 
  $$(VMMR0Imp_0_OUTDIR)/VMMR0.def: $(PATH_SUB_CURRENT)/VMMR0/VMMR0.def | $$(dir $$@)
  ifeq ($(VBOX_LDR_FMT),lx)
+	#	-e '/not-amd64/d'
 	$(SED) \
 		-e '/not-os2/d' \
-		-e '/not-amd64/d' \
+		-e '/not-x86/d' \
 		-e 's/^[ \t][ \t]*\([a-zA-Z]\)/    _\1/' \
 		-e 's/[ \t]DATA[ \t]*/ /'  \
 		--output $@ $<
@@ -556,6 +560,7 @@
 
  VMMR0_INCS      = \
  	include \
+	VMMR0 \
  	$(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
 
  VMMR0_SOURCES   = \
diff -urN vbox-clean-bk\src\VBox\VMM/tools/Makefile.kmk vbox-clean\src\VBox\VMM/tools/Makefile.kmk
--- vbox-clean-bk\src\VBox\VMM/tools/Makefile.kmk	2015-09-23 07:14:22.000000000 +0300
+++ vbox-clean\src\VBox\VMM/tools/Makefile.kmk	2015-09-27 00:40:02.000000000 +0300
@@ -64,7 +64,7 @@
 	$(PATH_STAGE_LIB)/SUPR3Static$(VBOX_SUFF_LIB) \
        $(VBOX_LIB_RUNTIME_STATIC)
 VBoxCpuReport_LIBS.solaris = kstat contract
-
+VBoxCpuReport_LIBS.os2 = c_omf386
 VBoxCpuReport_LDFLAGS.darwin = \
 	-framework IOKit -framework CoreFoundation -framework CoreServices
 
diff -urN vbox-clean-bk\src\VBox\VMM/VMMR3/PDMDriver.cpp vbox-clean\src\VBox\VMM/VMMR3/PDMDriver.cpp
--- vbox-clean-bk\src\VBox\VMM/VMMR3/PDMDriver.cpp	2015-09-23 07:14:26.000000000 +0300
+++ vbox-clean\src\VBox\VMM/VMMR3/PDMDriver.cpp	2015-09-27 00:41:02.000000000 +0300
@@ -1536,6 +1536,7 @@
     return rc;
 }
 
+#ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
 
 /** @interface_method_impl{PDMDRVHLP,pfnAsyncCompletionTemplateCreate} */
 static DECLCALLBACK(int) pdmR3DrvHlp_AsyncCompletionTemplateCreate(PPDMDRVINS pDrvIns, PPPDMASYNCCOMPLETIONTEMPLATE ppTemplate,
@@ -1553,6 +1554,7 @@
     return rc;
 }
 
+#endif
 
 #ifdef VBOX_WITH_NETSHAPER
 /** @interface_method_impl{PDMDRVHLP,pfnNetShaperAttach} */
@@ -1816,10 +1818,17 @@
     pdmR3DrvHlp_SetAsyncNotification,
     pdmR3DrvHlp_AsyncNotificationCompleted,
     pdmR3DrvHlp_ThreadCreate,
+#ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
     pdmR3DrvHlp_AsyncCompletionTemplateCreate,
+#else
+    NULL,
+#endif
 #ifdef VBOX_WITH_NETSHAPER
     pdmR3DrvHlp_NetShaperAttach,
     pdmR3DrvHlp_NetShaperDetach,
+#else
+    NULL,
+    NULL,
 #endif /* VBOX_WITH_NETSHAPER */
     pdmR3DrvHlp_LdrGetRCInterfaceSymbols,
     pdmR3DrvHlp_LdrGetR0InterfaceSymbols,
diff -urN vbox-clean-bk\src\VBox\VMM/VMMR3/VMMSwitcher.cpp vbox-clean\src\VBox\VMM/VMMR3/VMMSwitcher.cpp
--- vbox-clean-bk\src\VBox\VMM/VMMR3/VMMSwitcher.cpp	2015-09-23 07:14:26.000000000 +0300
+++ vbox-clean\src\VBox\VMM/VMMR3/VMMSwitcher.cpp	2015-09-27 00:41:56.000000000 +0300
@@ -102,7 +102,8 @@
 static PVMMSWITCHERDEF g_apHmSwitchers[VMMSWITCHER_MAX] =
 {
     NULL, /* invalid entry */
-#if HC_ARCH_BITS == 32 && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
+//// ??? #if HC_ARCH_BITS == 32 && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
+#if HC_ARCH_BITS == 32 && defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
     NULL,   //&vmmR3Switcher32BitTo32Bit_Def,
     NULL,   //&vmmR3Switcher32BitToPAE_Def,
     &vmmR3Switcher32BitToAMD64_Def,
diff -urN vbox-clean-bk\src\VBox\VMM/VMMRC/VMMRC.def vbox-clean\src\VBox\VMM/VMMRC/VMMRC.def
--- vbox-clean-bk\src\VBox\VMM/VMMRC/VMMRC.def	2015-09-23 07:14:26.000000000 +0300
+++ vbox-clean\src\VBox\VMM/VMMRC/VMMRC.def	2015-09-27 00:50:52.000000000 +0300
@@ -93,7 +93,7 @@
     RTAssertMsg1Weak
     RTAssertMsg2Weak
     RTAssertShouldPanic
-    RTLogDefaultInstance
+;    RTLogDefaultInstance ; (doubly defined)
     RTTimeNanoTSLegacySyncInvarNoDelta
     RTTimeNanoTSLegacySyncInvarWithDelta
     RTTimeNanoTSLegacyAsync
