Index: /trunk/src/libs/xpcom18a4/python/Makefile.kmk
===================================================================
--- /trunk/src/libs/xpcom18a4/python/Makefile.kmk	(revision 86627)
+++ /trunk/src/libs/xpcom18a4/python/Makefile.kmk	(revision 86628)
@@ -18,10 +18,4 @@
 SUB_DEPTH = ../../../..
 include $(KBUILD_PATH)/subheader.kmk
-
-ifdef VBOX_WITH_MULTIVERSION_PYTHON
- VBOX_MULTIPYTHON = 1
-else
- VBOX_MULTIPYTHON = 0
-endif
 
 #
@@ -80,5 +74,5 @@
 	$(KBUILD_TARGET) \
 	$(KBUILD_TARGET_ARCH) \
-	$(VBOX_MULTIPYTHON) )))
+	$(if-expr defined(VBOX_WITH_MULTIVERSION_PYTHON),1,0))))
 endif
 
@@ -209,4 +203,46 @@
 endif
 
+#
+# Unversioned Python 2.x.
+#
+ if defined(VBOX_PYTHON27_INC) || defined(VBOX_PYTHON_26_INC)
+DLLS += VBoxPython2
+VBoxPython2_EXTENDS    = VBoxPythonBase
+VBoxPython2_EXTENDS_BY = appending
+VBoxPython2_DEFS       = VBOX_PYXPCOM_MAJOR_VERSIONED
+  ifdef KMK_WITH_VERSION_COMPARE
+VBoxPython2_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,)
+  else
+VBoxPython2_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,)
+  endif
+  if defined(VBOX_PYTHON_26_INC)
+VBoxPython2_INCS       = $(VBOX_PYTHON26_INC)
+VBoxPython2_LIBS       = $(VBOX_PYTHON26_LIB)
+  else
+VBoxPython2_INCS       = $(VBOX_PYTHON27_INC)
+VBoxPython2_LIBS       = $(VBOX_PYTHON27_LIB)
+  endif
+ endif
+
+ if defined(VBOX_WITH_32_ON_64_MAIN_API) && (defined(VBOX_PYTHON27_LIB_X86) || defined(VBOX_PYTHON_26_INC_X86))
+DLLS += VBoxPython2_x86
+VBoxPython2_x86_EXTENDS    = VBoxPythonBase_x86
+VBoxPython2_x86_EXTENDS_BY = appending
+VBoxPython2_x86_DEFS       = VBOX_PYXPCOM_MAJOR_VERSIONED $(VBoxPythonBase_x86_DEFS)
+  ifdef KMK_WITH_VERSION_COMPARE
+VBoxPython2_x86_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" vle "10.7",OSX107,-x86)
+  else
+VBoxPython2_x86_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_DEF_MACOSX_VERSION_MIN)" <= "10.7" && "$(length-var VBOX_DEF_MACOSX_VERSION_MIN)" == "4",OSX107,-x86)
+  endif
+  if defined(VBOX_PYTHON27_LIB_X86)
+VBoxPython2_x86_INCS       = $(VBOX_PYTHON26_INC)
+VBoxPython2_x86_LIBS       = $(VBOX_PYTHON26_LIB_X86)
+  else
+VBoxPython2_x86_INCS       = $(VBOX_PYTHON27_INC)
+VBoxPython2_x86_LIBS       = $(VBOX_PYTHON27_LIB_X86)
+  endif
+ endif
+
+
 ifdef VBOX_PYTHON31_INC
 #
Index: /trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
===================================================================
--- /trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp	(revision 86627)
+++ /trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp	(revision 86628)
@@ -84,5 +84,5 @@
 #  define MANGLE_MODULE_INIT(a_Name)    RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
 # endif
-# ifdef VBOX_PYXPCOM_VERSIONED
+# if defined(VBOX_PYXPCOM_VERSIONED) && !defined(VBOX_PYXPCOM_MAJOR_VERSIONED)
 #  if   PY_VERSION_HEX >= 0x03080000 && PY_VERSION_HEX < 0x03090000
 #   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython3_8")
@@ -132,8 +132,11 @@
 #  endif
 # else
-#  if PY_MAJOR_VERSION <= 2
+#  if PY_MAJOR_VERSION <= 2 && defined(VBOX_PYXPCOM_MAJOR_VERSIONED)
+#   define MODULE_NAME 	  MANGLE_MODULE_NAME("VBoxPython2")
+#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2)
+#  elif PY_MAJOR_VERSION <= 2
 #   define MODULE_NAME 	  MANGLE_MODULE_NAME("VBoxPython")
 #   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython)
-#  elif defined(Py_LIMITED_API)
+#  elif defined(Py_LIMITED_API) || defined(VBOX_PYXPCOM_MAJOR_VERSIONED)
 #   define MODULE_NAME 	  MANGLE_MODULE_NAME("VBoxPython3")
 #   define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3)
