Index: /trunk/src/VBox/Installer/win/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Installer/win/Makefile.kmk	(revision 51022)
+++ /trunk/src/VBox/Installer/win/Makefile.kmk	(revision 51023)
@@ -366,7 +366,8 @@
 endef
 
-$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
-	$(foreach lang,$(VBOX_INSTALLER_LANGUAGES), \
-		$(eval $(def_vbox_link_msm))))
+$(if $(VBOX_WITH_MSM_INSTALL), \
+	$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
+		$(foreach lang,$(VBOX_INSTALLER_LANGUAGES), \
+			$(eval $(def_vbox_link_msm)))),)
 
 #
@@ -458,6 +459,10 @@
 $(VBOX_WIN_INST_OUT_DIR)/VirtualBox_$(lang).wixobj: \
 			$(PATH_SUB_CURRENT)/VirtualBox.wxs \
-			$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
-				$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm) \
+			$(if $(VBOX_WITH_MSM_INSTALL), \
+				$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
+					$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm), \
+				$(VBOX_WIN_INST_OUT_DIR)/VBoxKey.wxi \
+				$(VBOX_WIN_INST_OUT_DIR)/VBoxGuiNLS.wxi \
+				$(VBOX_WIN_INST_OUT_DIR)/VirtualBox_TypeLib.wxi) \
 			$(VBOX_VERSION_STAMP) \
 			| $$$$(dir $$$$@)
@@ -485,6 +490,7 @@
 		-E 'VBOX_SIGNING_MODE=$(strip $(if $(VBOX_SIGNING_MODE),$(VBOX_SIGNING_MODE),none))' \
 		-E 'VBOX_GUI_USE_QGL=$(if $(VBOX_GUI_USE_QGL),yes,no)' \
-		$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
-			-E 'VBOX_WIN_INST_MERGE_$(toupper $(module))=$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm') \
+		$(if $(VBOX_WITH_MSM_INSTALL), \
+			$(foreach module,$(VBOX_INSTALLER_MERGE_MODULES), \
+				-E 'VBOX_WIN_INST_MERGE_$(toupper $(module))=$(VBOX_WIN_INST_OUT_DIR)/VBoxMerge$(module)_$(lang).msm'),) \
 		-E 'VBOX_WITH_32_ON_64_MAIN_API=$(if $(VBOX_WITH_32_ON_64_MAIN_API),yes,no)' \
 		-E 'VBOX_WITH_ADDITIONS_PACKING=$(if $(VBOX_WITH_ADDITIONS_PACKING),yes,no)' \
@@ -505,4 +511,5 @@
 		-E 'VBOX_WITH_WEBSERVICES=$(if $(VBOX_WITH_WEBSERVICES),yes,no)' \
 		-E 'VBOX_WITH_SECURELABEL=$(if $(VBOX_WITH_SECURELABEL),yes,no)' \
+		-E 'VBOX_WITH_MSM_INSTALL=$(if $(VBOX_WITH_MSM_INSTALL),yes,no)' \
 		-E 'VBOX_WITH_SERIALNUMBER_INSTALL=$(if $(VBOX_WITH_SERIALNUMBER_INSTALL),yes,no)' \
 		-E 'VBOX_WITH_LICENSE_DISPLAY=$(if $(VBOX_WITH_LICENSE_DISPLAY),yes,no)' \
@@ -635,5 +642,4 @@
 	$(RM) -f $@.tmp
 
-
 #
 # Construct the list of GUI translations.
Index: /trunk/src/VBox/Installer/win/Properties.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/Properties.wxi	(revision 51022)
+++ /trunk/src/VBox/Installer/win/Properties.wxi	(revision 51023)
@@ -14,5 +14,6 @@
 -->
 
-<Include>
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wix"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
 
   <!-- TODO: Add "VBox" prefix! -->
Index: /trunk/src/VBox/Installer/win/VBoxMergeApp.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeApp.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeApp.wxi	(revision 51023)
@@ -0,0 +1,370 @@
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
+    <Directory Id="dir_VBoxAppDocuments" Name="doc">
+        <!-- The documentation is a separate component. This allows to split the install process
+             into pieces if ever necessary. Maintenance is easier, too. The following component
+             will be installed in the "doc" folder. -->
+        <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
+            <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
+        </Component>
+    </Directory>
+<?endif ?>
+    <!-- Device driver directory -->
+    <Directory Id="dir_VBoxAppDrivers" Name="drivers">
+        <Directory Id="dir_VBoxAppVBoxDrv" Name="vboxdrv">
+            <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
+                <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
+                                Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/>
+                <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes"
+                      Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
+                <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf"
+                      Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
+<?if $(env.VBOX_SIGNING_MODE) != none ?>
+                <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat"
+                      Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
+<?endif ?>
+            </Component>
+        </Directory>
+    </Directory> <!-- Directory "drivers" -->
+
+    <!-- National Language Support directory -->
+    <Directory Id="dir_VBoxAppNLS" Name="nls">
+        <Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)">
+            <!-- Include the autogenerated NLS file list -->
+            <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
+        </Component>
+    </Directory>
+
+<?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
+    <Directory Id="dir_VBoxAppX86" Name="x86">
+        <!-- The 32-bit client COM component (see also cp_MainCom below). -->
+        <Component Id="cp_MainCOM_x86" Guid="B600824E-4A25-2EB3-4B44-3D8CB7F9B92D" Win64="no">
+            <File Id="file_VBoxClient_x86" Name="VBoxClient-x86.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\VBoxClient-x86.dll" KeyPath="yes"
+                  DiskId="$(var.Property_DiskIdCommon)">
+            </File>
+            <File Id="file_VBoxRT_x86" Name="VBoxRT-x86.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\VBoxRT-x86.dll"
+                  DiskId="$(var.Property_DiskIdCommon)">
+            </File>
+            <?include $(env.PATH_TARGET)\VirtualBox_TypeLib_x86.wxi ?>
+<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
+            <!-- MS C/C++ v10.0 32 bit Runtime DLL files. -->
+            <File Id="file_msvcr100.dll_x86" Name="msvcr100.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\msvcr100.dll"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+            <File Id="file_msvcp100.dll_x86" Name="msvcp100.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\msvcp100.dll"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+<?endif?>
+<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
+            <!-- MS C/C++ v11.0 Runtime DLL files. -->
+            <File Id="file_msvcr110.dll_x86" Name="msvcr110.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\msvcr110.dll"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+            <File Id="file_msvcp110.dll_x86" Name="msvcp110.dll"
+                  Source="$(env.PATH_OUT)\bin\x86\msvcp110.dll"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+<?endif?>
+        </Component>
+    </Directory>
+<?endif?>
+
+    <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
+         TypeLib element where to take the TLB resource from) may appear only once per Component. -->
+    <Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
+
+        <!-- File ID *must not* be changed because of our typelib template generation file! -->
+        <File Id="VBoxSVC" Name="VBoxSVC.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
+        </File>
+
+        <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
+             and create appropriate Interface registry entries. Note that the same TLB is present
+             in VBoxSVC.exe - it's just a matter of choice which one to use -->
+        <!-- File ID *must not* be changed because of our typelib template generation file! -->
+        <File Id="VBoxC" Name="VBoxC.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
+        </File>
+
+        <!-- Include the autogenerated TypeLib block -->
+        <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
+
+    </Component>
+
+    <!--
+
+    <Component Id="cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
+        <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
+                       Value="installed" KeyPath="yes" />
+        <Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
+                  Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
+        <RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
+    </Component>-->
+
+    <!---->
+
+    <Component Id="cp_RegisterExtensions" Guid="FEB8943E-5D60-4E2D-846F-458207019D40" Win64="$(var.Property_Win64)">
+        <Condition>VBOX_REGISTERFILEEXTENSIONS</Condition>
+        <!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual
+             file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
+             Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
+        <ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
+            <Extension Id="vbox" ContentType="application/x-virtualbox-vbox">
+                <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
+            </Extension>
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
+            <Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack">
+                <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
+            </Extension>
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
+            <Extension Id="ovf" ContentType="application/x-virtualbox-ovf">
+                <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
+            </Extension>
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
+            <Extension Id="ova" ContentType="application/x-virtualbox-ova">
+                <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
+            </Extension>
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
+            <Extension Id="vdi" ContentType="application/x-virtualbox-vdi" />
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
+            <Extension Id="vmdk" ContentType="application/x-virtualbox-vmdk" />
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
+            <Extension Id="vhd" ContentType="application/x-virtualbox-vhd" />
+        </ProgId>
+        <ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
+            <Extension Id="hdd" ContentType="application/x-virtualbox-hdd" />
+        </ProgId>
+    </Component> <!-- RegisterExtensions -->
+
+    <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
+         binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
+    <Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
+
+        <!-- Set required environment variables. -->
+        <Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
+                     System="yes" Part="last" Permanent="no" Value="MergeRedirectFolder" />
+
+        <!-- Files -->
+<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
+        <!-- Include all user manual .CHM files (file is generated by makefile). -->
+        <?include $(env.PATH_TARGET)\Files_Main.wxi ?>
+<?endif ?>
+        <!-- Include all license files (file is generated by makefile). -->
+        <?include $(env.PATH_TARGET)\Files_License.wxi ?>
+
+        <!-- Frontends -->
+        <File Id="file_VBoxManage.exe" Name="VBoxManage.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
+        <File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
+            <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
+       <!--     <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
+        </File>
+        <File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
+
+        <!-- Misc tools -->
+        <File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
+        <File Id="file_VBoxNetNAT.exe" Name="VBoxNetNAT.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxNetNAT.exe"/>
+<?if $(env.VBOX_WITH_EXTPACK) = "yes" ?>
+        <File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
+<?endif ?>
+        <!-- VBox DLL files -->
+        <File Id="file_VBoxDD.dll" Name="VBoxDD.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
+        <File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
+        <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
+        <File Id="file_VBoxRT.dll" Name="VBoxRT.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
+        <File Id="file_VBoxREM.dll" Name="VBoxREM.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
+<?if $(env.BUILD_TARGET_ARCH) = "x86" ?>
+        <File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
+        <File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
+<?endif ?>
+        <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
+<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
+        <File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
+<?endif ?>
+        <File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
+        <File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
+<?if $(env.VBOX_WITH_DRAG_AND_DROP)= "yes" ?>
+        <File Id="file_VBoxDragAndDropSvc.dll" Name="VBoxDragAndDropSvc.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
+<?endif ?>
+<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
+        <File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
+<?endif ?>
+<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
+        <File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
+<?endif ?>
+        <File Id="file_VBoxHostChannel.dll" Name="VBoxHostChannel.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxHostChannel.dll" />
+        <File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
+        <File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
+
+        <!-- Include resource DLL (icons, ...). -->
+        <File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)"
+              Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
+
+        <File Id="file_VMMGC.gc" Name="VMMGC.gc"
+              Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
+        <File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc"
+              Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
+        <File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc"
+              Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
+
+        <File Id="file_VMMR0.r0" Name="VMMR0.r0"
+              Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
+        <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0"
+              Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
+        <File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0"
+              Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
+
+<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
+        <File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
+<?endif ?>
+        <!-- Qt frontend -->
+        <File Id="file_VirtualBox.exe" Name="VirtualBox.exe"
+              Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
+        </File>
+        <File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll"
+              Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
+        <File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll"
+              Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
+        <File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll"
+              Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
+<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
+        <File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
+<?endif ?>
+<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
+        <File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll"
+              Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
+<?endif?>
+
+<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
+        <!-- MS C/C++ v10.0 Runtime DLL files. -->
+        <File Id="file_msvcr100.dll" Name="msvcr100.dll"
+              Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
+        <File Id="file_msvcp100.dll" Name="msvcp100.dll"
+              Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
+<?endif?>
+<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
+        <!-- MS C/C++ v11.0 Runtime DLL files. -->
+        <File Id="file_msvcr110.dll" Name="msvcr110.dll"
+              Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
+        <File Id="file_msvcp110.dll" Name="msvcp110.dll"
+              Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
+<?endif?>
+
+        <!-- EFI firmware -->
+<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
+        <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)"
+              Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
+        <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)"
+              Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
+<?endif?>
+        <!-- VBox guest additions -->
+<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
+    <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
+            <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
+                  Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+    <?else ?>
+            <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
+                  Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
+    <?endif ?>
+<?endif ?>
+        <!-- Include key for VBox version -->
+        <?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
+
+    </Component> <!-- MainBinaries -->
+
+<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
+    <!-- Qt accessible plugins -->
+    <Directory Id="dir_VBoxAppAccessible" Name="accessible">
+        <Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
+            <File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll"
+                  Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
+        </Component>
+    </Directory>
+<?endif?>
+
+<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
+    <Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
+        <File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
+        <File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
+        <File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
+        <File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
+    </Component>
+<?endif?>
+    <!-- SDL plugins -->
+    <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
+        <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
+              Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
+        <File Id="file_SDL.dll" Name="SDL.dll"
+              Source="$(env.PATH_OUT)\bin\SDL.dll" />
+<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
+        <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
+              Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
+<?endif?>
+    </Component> <!-- SDL plugins -->
+
+<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
+    <!-- Webservice -->
+    <Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
+        <File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe"
+              Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
+    </Component>
+<?endif?>
+    <!-- C API (glue) bindings -->
+    <Component Id="cp_VBoxCAPI" Guid="097F7F53-7111-467F-8E0C-257D9926FDA0">
+        <File Id="file_VBoxCAPI.dll" Name="VBoxCAPI.dll"
+              Source="$(env.PATH_OUT)\bin\VBoxCAPI.dll" />
+    </Component>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeApp.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeApp.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VBoxMergeApp.wxs	(revision 51023)
@@ -49,368 +49,11 @@
                  SummaryCodepage="1252"/>
 
-        <!-- Custom actions -->
-        <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
-
         <!-- Here comes the file/directory list -->
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="MergeRedirectFolder" FileSource=".">
 
-<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
-                <Directory Id="dir_Documents" Name="doc">
-                    <!-- The documentation is a separate component. This allows to split the install process
-                         into pieces if ever necessary. Maintenance is easier, too. The following component
-                         will be installed in the "doc" folder. -->
-                    <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
-                        <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
-                    </Component>
-                </Directory>
-<?endif ?>
-                <!-- Device driver directory -->
-                <Directory Id="dir_Drivers" Name="drivers">
-                    <Directory Id="dir_VBoxDrv" Name="vboxdrv">
-                        <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
-                            <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
-                                            Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/>
-                            <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes"
-                                  Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
-                            <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf"
-                                  Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-                            <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat"
-                                  Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
-<?endif ?>
-                        </Component>
-                    </Directory>
-                </Directory> <!-- Directory "drivers" -->
+                <?include VBoxMergeApp.wxi ?>
+                <?include VBoxMergeAppCA.wxi ?>
 
-                <!-- National Language Support directory -->
-                <Directory Id="dir_NLS" Name="nls">
-                    <Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)">
-                        <!-- Include the autogenerated NLS file list -->
-                        <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
-                    </Component>
-                </Directory>
-
-<?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
-                <Directory Id="dir_X86" Name="x86">
-                    <!-- The 32-bit client COM component (see also cp_MainCom below). -->
-                    <Component Id="cp_MainCOM_x86" Guid="B600824E-4A25-2EB3-4B44-3D8CB7F9B92D" Win64="no">
-                        <File Id="VBoxClient_x86" Name="VBoxClient-x86.dll"
-                            Source="$(env.PATH_OUT)\bin\x86\VBoxClient-x86.dll" KeyPath="yes"
-                            DiskId="$(var.Property_DiskIdCommon)">
-                        </File>
-                        <File Id="VBoxRT_x86" Name="VBoxRT-x86.dll"
-                            Source="$(env.PATH_OUT)\bin\x86\VBoxRT-x86.dll"
-                            DiskId="$(var.Property_DiskIdCommon)">
-                        </File>
-                        <?include $(env.PATH_TARGET)\VirtualBox_TypeLib_x86.wxi ?>
-<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
-                        <!-- MS C/C++ v10.0 32 bit Runtime DLL files. -->
-                        <File Id="file_msvcr100.dll_x86" Name="msvcr100.dll"
-                              Source="$(env.PATH_OUT)\bin\x86\msvcr100.dll"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-                        <File Id="file_msvcp100.dll_x86" Name="msvcp100.dll"
-                              Source="$(env.PATH_OUT)\bin\x86\msvcp100.dll"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-<?endif?>
-<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
-                        <!-- MS C/C++ v11.0 Runtime DLL files. -->
-                        <File Id="file_msvcr110.dll_x86" Name="msvcr110.dll"
-                              Source="$(env.PATH_OUT)\bin\x86\msvcr110.dll"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-                        <File Id="file_msvcp110.dll_x86" Name="msvcp110.dll"
-                              Source="$(env.PATH_OUT)\bin\x86\msvcp110.dll"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-<?endif?>
-                    </Component>
-                </Directory>
-<?endif?>
-
-                <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
-                     TypeLib element where to take the TLB resource from) may appear only once per Component. -->
-                <Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
-
-                    <!-- File ID *must not* be changed because of our typelib template generation file! -->
-                    <File Id="VBoxSVC" Name="VBoxSVC.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
-                    </File>
-
-                    <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
-                         and create appropriate Interface registry entries. Note that the same TLB is present
-                         in VBoxSVC.exe - it's just a matter of choice which one to use -->
-                    <!-- File ID *must not* be changed because of our typelib template generation file! -->
-                    <File Id="VBoxC" Name="VBoxC.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
-                    </File>
-
-                    <!-- Include the autogenerated TypeLib block -->
-                    <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
-
-                </Component>
-
-                <!--
-
-                <Component Id="cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
-                    <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
-                                   Value="installed" KeyPath="yes" />
-                    <Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
-                              Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
-                    <RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
-                </Component>-->
-
-                <!---->
-
-                <Component Id="cp_RegisterExtensions" Guid="FEB8943E-5D60-4E2D-846F-458207019D40" Win64="$(var.Property_Win64)">
-                    <Condition>VBOX_REGISTERFILEEXTENSIONS</Condition>
-                    <!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual
-                         file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
-                         Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
-                    <ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
-                        <Extension Id="vbox" ContentType="application/x-virtualbox-vbox">
-                            <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
-                        </Extension>
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
-                        <Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack">
-                            <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
-                        </Extension>
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
-                        <Extension Id="ovf" ContentType="application/x-virtualbox-ovf">
-                            <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
-                        </Extension>
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
-                        <Extension Id="ova" ContentType="application/x-virtualbox-ova">
-                            <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
-                        </Extension>
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
-                        <Extension Id="vdi" ContentType="application/x-virtualbox-vdi" />
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
-                        <Extension Id="vmdk" ContentType="application/x-virtualbox-vmdk" />
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
-                        <Extension Id="vhd" ContentType="application/x-virtualbox-vhd" />
-                    </ProgId>
-                    <ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
-                        <Extension Id="hdd" ContentType="application/x-virtualbox-hdd" />
-                    </ProgId>
-                </Component> <!-- RegisterExtensions -->
-
-                <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
-                     binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
-                <Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
-
-                    <!-- Set required environment variables. -->
-                    <Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
-                                 System="yes" Part="last" Permanent="no" Value="MergeRedirectFolder" />
-
-                    <!-- Files -->
-<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
-                    <!-- Include all user manual .CHM files (file is generated by makefile). -->
-                    <?include $(env.PATH_TARGET)\Files_Main.wxi ?>
-<?endif ?>
-                    <!-- Include all license files (file is generated by makefile). -->
-                    <?include $(env.PATH_TARGET)\Files_License.wxi ?>
-
-                    <!-- Frontends -->
-                    <File Id="file_VBoxManage.exe" Name="VBoxManage.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
-                    <File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
-                        <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
-                   <!--     <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
-                    </File>
-                    <File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
-
-                    <!-- Misc tools -->
-                    <File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
-                    <File Id="file_VBoxNetNAT.exe" Name="VBoxNetNAT.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxNetNAT.exe"/>
-<?if $(env.VBOX_WITH_EXTPACK) = "yes" ?>
-                    <File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
-<?endif ?>
-                    <!-- VBox DLL files -->
-                    <File Id="file_VBoxDD.dll" Name="VBoxDD.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
-                    <File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
-                    <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
-                    <File Id="file_VBoxRT.dll" Name="VBoxRT.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
-                    <File Id="file_VBoxREM.dll" Name="VBoxREM.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
-<?if $(env.BUILD_TARGET_ARCH) = "x86" ?>
-                    <File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
-                    <File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
-<?endif ?>
-                    <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
-<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
-                    <File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
-<?endif ?>
-                    <File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
-                    <File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
-<?if $(env.VBOX_WITH_DRAG_AND_DROP)= "yes" ?>
-                    <File Id="file_VBoxDragAndDropSvc.dll" Name="VBoxDragAndDropSvc.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
-<?endif ?>
-<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
-                    <File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
-<?endif ?>
-<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
-                    <File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
-<?endif ?>
-                    <File Id="file_VBoxHostChannel.dll" Name="VBoxHostChannel.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxHostChannel.dll" />
-                    <File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
-                    <File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
-
-                    <!-- Include resource DLL (icons, ...). -->
-                    <File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)"
-                          Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
-
-                    <File Id="file_VMMGC.gc" Name="VMMGC.gc"
-                          Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
-                    <File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc"
-                          Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
-                    <File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc"
-                          Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
-
-                    <File Id="file_VMMR0.r0" Name="VMMR0.r0"
-                          Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
-                    <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0"
-                          Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
-                    <File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0"
-                          Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
-
-<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
-                    <File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
-<?endif ?>
-                    <!-- Qt frontend -->
-                    <File Id="file_VirtualBox.exe" Name="VirtualBox.exe"
-                          Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
-                    </File>
-                    <File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll"
-                          Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
-                    <File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll"
-                          Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
-                    <File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll"
-                          Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
-<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
-                    <File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
-<?endif ?>
-<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
-                    <File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll"
-                          Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
-<?endif?>
-
-<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
-                    <!-- MS C/C++ v10.0 Runtime DLL files. -->
-                    <File Id="file_msvcr100.dll" Name="msvcr100.dll"
-                          Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
-                    <File Id="file_msvcp100.dll" Name="msvcp100.dll"
-                          Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
-<?endif?>
-<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
-                    <!-- MS C/C++ v11.0 Runtime DLL files. -->
-                    <File Id="file_msvcr110.dll" Name="msvcr110.dll"
-                          Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
-                    <File Id="file_msvcp110.dll" Name="msvcp110.dll"
-                          Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
-<?endif?>
-
-                    <!-- EFI firmware -->
-<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
-                    <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)"
-                          Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
-                    <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)"
-                          Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
-<?endif?>
-                    <!-- VBox guest additions -->
-<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
-<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
-                    <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
-                          Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso"
-                          DiskId="$(var.Property_DiskIdCommon)" />
-<?else ?>
-                    <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
-                          Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
-<?endif ?>
-<?endif ?>
-                    <!-- Include key for VBox version -->
-                    <?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
-
-                </Component> <!-- MainBinaries -->
-
-<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
-                <!-- Qt accessible plugins -->
-                <Directory Id="dir_Accessible" Name="accessible">
-                    <Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
-                        <File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll"
-                              Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
-                    </Component>
-                </Directory>
-<?endif?>
-
-<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
-                <Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
-                    <File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
-                    <File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
-                    <File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
-                    <File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
-                </Component>
-<?endif?>
-                <!-- SDL plugins -->
-                <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
-                    <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
-                          Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
-                    <File Id="file_SDL.dll" Name="SDL.dll"
-                          Source="$(env.PATH_OUT)\bin\SDL.dll" />
-<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
-                    <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
-                          Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
-<?endif?>
-                </Component> <!-- SDL plugins -->
-
-<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
-                <!-- Webservice -->
-                <Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
-                    <File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe"
-                          Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
-                </Component>
-<?endif?>
-                <!-- C API (glue) bindings -->
-                <Component Id="cp_VBoxCAPI" Guid="097F7F53-7111-467F-8E0C-257D9926FDA0">
-                    <File Id="file_VBoxCAPI.dll" Name="VBoxCAPI.dll"
-                          Source="$(env.PATH_OUT)\bin\VBoxCAPI.dll" />
-                </Component>
-
-<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
-                <Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
-                    <Condition>VBOX_PYTHON_IS_INSTALLED</Condition>
-                </Component>
-<?endif?>
             </Directory> <!-- MergeRedirectFolder directory -->
         </Directory> <!-- TARGETDIR -->
Index: /trunk/src/VBox/Installer/win/VBoxMergeAppCA.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeAppCA.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeAppCA.wxi	(revision 51023)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <!-- Custom actions -->
+    <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxi	(revision 51023)
@@ -0,0 +1,36 @@
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <!-- Device driver directory -->
+    <Directory Id="dir_VBoxNetAdpDrivers" Name="drivers">
+        <Directory Id="dir_VBoxNetAdpNetwork" Name="network">
+            <Directory Id="dir_VBoxNetAdpNetAdp" Name="netadp">
+                <Component Id="cp_NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
+                    <File Id="file_VBoxNetAdp.sys" Name="VBoxNetAdp.sys" KeyPath="yes"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys" Checksum="yes"/>
+                    <File Id="file_VBoxNetAdp.inf" Name="VBoxNetAdp.inf"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
+<?if $(env.VBOX_SIGNING_MODE) != none ?>
+                    <File Id="file_VBoxNetAdp.cat" Name="VBoxNetAdp.cat"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
+<?endif ?>
+                </Component>
+            </Directory>
+        </Directory>
+    </Directory>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VBoxMergeNetAdp.wxs	(revision 51023)
@@ -37,21 +37,7 @@
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="MergeRedirectFolder" FileSource=".">
-                <!-- Device driver directory -->
-                <Directory Id="dir_Drivers" Name="drivers">
-                    <Directory Id="dir_Network" Name="network">
-                        <Directory Id="dir_NetAdp" Name="netadp">
-                            <Component Id="cp_NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">
-                                <File Id="file_VBoxNetAdp.sys" Name="VBoxNetAdp.sys" KeyPath="yes"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys" Checksum="yes"/>
-                                <File Id="file_VBoxNetAdp.inf" Name="VBoxNetAdp.inf"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" />
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-                                <File Id="file_VBoxNetAdp.cat" Name="VBoxNetAdp.cat"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" />
-<?endif ?>
-                            </Component>
-                        </Directory>
-                    </Directory>
-                </Directory> <!-- Directory "drivers" -->
+
+                <?include VBoxMergeNetAdp.wxi ?>
+
             </Directory> <!-- MergeRedirectFolder -->
         </Directory> <!-- TARGETDIR -->
Index: /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxi	(revision 51023)
@@ -0,0 +1,44 @@
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <!-- Device driver directory -->
+    <Directory Id="dir_VBoxNetFltDrivers" Name="drivers">
+
+<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+        <Directory Id="dir_VBoxNetFltNetwork" Name="network">
+            <Directory Id="dir_VBoxNetFltNetFlt" Name="netflt">
+                <Component Id="cp_NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
+                    <File Id="file_VBoxNetFlt.sys" Name="VBoxNetFlt.sys"   KeyPath="yes"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" Checksum="yes"/>
+                    <File Id="file_VBoxNetFltNobj.sys" Name="VBoxNetFltNobj.dll"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" Checksum="yes"/>
+                    <File Id="file_VBoxNetFltM.inf" Name="VBoxNetFltM.inf"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" />
+                    <File Id="file_VBoxNetFlt.inf" Name="VBoxNetFlt.inf"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
+    <?if $(env.VBOX_SIGNING_MODE) != none ?>
+                    <File Id="file_VBoxNetFlt.cat" Name="VBoxNetFlt.cat"
+                          Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
+    <?endif ?>
+                </Component>
+            </Directory>
+        </Directory>
+<?endif ?> <!-- VBOX_WITH_NETFLT -->
+
+    </Directory> <!-- Directory "drivers" -->
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VBoxMergeNetFlt.wxs	(revision 51023)
@@ -34,83 +34,14 @@
                  SummaryCodepage="1252"/>
 
-        <!-- Custom actions -->
-        <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
-<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
-        <CustomAction Id="ca_CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_CreateHostOnlyInterfaceArgs" Property="ca_CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
-
-        <CustomAction Id="ca_RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_StopHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="StopHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
-
-        <CustomAction Id="ca_UpdateHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="UpdateHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_UpdateHostOnlyInterfacesArgs" Property="ca_UpdateHostOnlyInterfaces" Value="[INSTALLDIR]" Execute="immediate"/>
-
-        <CustomAction Id="ca_InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_InstallNetFltArgs" Property="ca_InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
-
-        <CustomAction Id="ca_RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
-        <CustomAction Id="ca_RollbackInstallNetFltArgs" Property="ca_RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
-
-        <CustomAction Id="ca_UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_UninstallNetFltArgs" Property="ca_UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
-
-        <CustomAction Id="ca_RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
-        <CustomAction Id="ca_RollbackUninstallNetFltArgs" Property="ca_RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
-<?endif ?>
-
         <!-- Here comes the file/directory list -->
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="MergeRedirectFolder" FileSource=".">
-                <!-- Device driver directory -->
-                <Directory Id="dir_Drivers" Name="drivers">
-<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
-                    <Directory Id="dir_Network" Name="network">
-                        <Directory Id="dir_NetFlt" Name="netflt">
-                            <Component Id="cp_NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)">
-                                <File Id="file_VBoxNetFlt.sys" Name="VBoxNetFlt.sys"   KeyPath="yes"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" Checksum="yes"/>
-                                <File Id="file_VBoxNetFltNobj.sys" Name="VBoxNetFltNobj.dll"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" Checksum="yes"/>
-                                <File Id="file_VBoxNetFltM.inf" Name="VBoxNetFltM.inf"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" />
-                                <File Id="file_VBoxNetFlt.inf" Name="VBoxNetFlt.inf"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" />
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-                                <File Id="file_VBoxNetFlt.cat" Name="VBoxNetFlt.cat"
-                                      Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" />
-<?endif ?>
-                            </Component>
-                        </Directory>
-                    </Directory>
-<?endif ?>
-                </Directory> <!-- Directory "drivers" -->
+
+                <?include VBoxMergeNetFlt.wxi ?>
+                <?include VBoxMergeNetFltCA.wxi ?>
+
             </Directory> <!-- MergeRedirectFolder -->
         </Directory> <!-- TARGETDIR -->
 
-        <InstallExecuteSequence>
-<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
-            <!-- Create host-only interfaces on first-time install. -->
-            <Custom Action="ca_CreateHostOnlyInterfaceArgs" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
-            <Custom Action="ca_CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
-            <!-- Don't remove the host-only interfaces on update, only on uninstall. -->
-            <Custom Action="ca_RemoveHostOnlyInterfaces" After="ca_UninstallNetFlt" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
-            <!-- First stop the existing host-only interfaces on update ... -->
-            <Custom Action="ca_StopHostOnlyInterfaces" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[UPGRADINGPRODUCTCODE]]></Custom>
-            <!-- ... then do the actual driver update. -->
-            <Custom Action="ca_UpdateHostOnlyInterfacesArgs" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
-            <Custom Action="ca_UpdateHostOnlyInterfaces" Before="InstallFiles" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
-
-            <Custom Action="ca_RollbackInstallNetFltArgs" Before="ca_RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
-            <Custom Action="ca_RollbackInstallNetFlt" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
-            <Custom Action="ca_InstallNetFltArgs" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
-            <Custom Action="ca_InstallNetFlt" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
-
-            <Custom Action="ca_RollbackUninstallNetFltArgs" Before="ca_RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
-            <Custom Action="ca_RollbackUninstallNetFlt" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
-            <Custom Action="ca_UninstallNetFltArgs" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
-            <Custom Action="ca_UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
-<?endif?>
-        </InstallExecuteSequence>
-
     </Module>
 </Wix>
Index: /trunk/src/VBox/Installer/win/VBoxMergeNetFltCA.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeNetFltCA.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeNetFltCA.wxi	(revision 51023)
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <!-- Custom actions -->
+    <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
+<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+    <CustomAction Id="ca_CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_CreateHostOnlyInterfaceArgs" Property="ca_CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <CustomAction Id="ca_RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_StopHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="StopHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
+
+    <CustomAction Id="ca_UpdateHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="UpdateHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_UpdateHostOnlyInterfacesArgs" Property="ca_UpdateHostOnlyInterfaces" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <CustomAction Id="ca_InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_InstallNetFltArgs" Property="ca_InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <CustomAction Id="ca_RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>
+    <CustomAction Id="ca_RollbackInstallNetFltArgs" Property="ca_RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <CustomAction Id="ca_UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_UninstallNetFltArgs" Property="ca_UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <CustomAction Id="ca_RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>
+    <CustomAction Id="ca_RollbackUninstallNetFltArgs" Property="ca_RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>
+<?endif ?>
+
+    <InstallExecuteSequence>
+<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+        <!-- Create host-only interfaces on first-time install. -->
+        <Custom Action="ca_CreateHostOnlyInterfaceArgs" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
+        <Custom Action="ca_CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>
+        <!-- Don't remove the host-only interfaces on update, only on uninstall. -->
+        <Custom Action="ca_RemoveHostOnlyInterfaces" After="ca_UninstallNetFlt" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")]]></Custom>
+        <!-- First stop the existing host-only interfaces on update ... -->
+        <Custom Action="ca_StopHostOnlyInterfaces" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[UPGRADINGPRODUCTCODE]]></Custom>
+        <!-- ... then do the actual driver update. -->
+        <Custom Action="ca_UpdateHostOnlyInterfacesArgs" Before="ca_UpdateHostOnlyInterfaces" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
+        <Custom Action="ca_UpdateHostOnlyInterfaces" Before="InstallFiles" ><![CDATA[Installed AND UPGRADINGPRODUCTCODE]]></Custom>
+
+        <Custom Action="ca_RollbackInstallNetFltArgs" Before="ca_RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
+        <Custom Action="ca_RollbackInstallNetFlt" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
+        <Custom Action="ca_InstallNetFltArgs" Before="ca_InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
+        <Custom Action="ca_InstallNetFlt" Before="ca_CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>
+
+        <Custom Action="ca_RollbackUninstallNetFltArgs" Before="ca_RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
+        <Custom Action="ca_RollbackUninstallNetFlt" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
+        <Custom Action="ca_UninstallNetFltArgs" Before="ca_UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
+        <Custom Action="ca_UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>
+<?endif?>
+    </InstallExecuteSequence>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergePython.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergePython.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergePython.wxi	(revision 51023)
@@ -0,0 +1,40 @@
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
+    <!-- Python bindings -->
+    <Component Id="cp_VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593" Win64="$(var.Property_Win64)">
+         <File Id="file_vboxapisetup.py" Name="vboxapisetup.py"
+               Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py"
+               DiskId="$(var.Property_DiskIdCommon)" />
+    </Component>
+    <Directory Id="dir_VBoxPythonSDKVBoxAPI" Name="vboxapi">
+        <Component Id="cp_VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593" Win64="$(var.Property_Win64)">
+            <File Id="file___init__.py" Name="__init__.py"
+                  Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+            <File Id="file_VirtualBox_constants.py" Name="VirtualBox_constants.py"
+                  Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py"
+                  DiskId="$(var.Property_DiskIdCommon)" />
+        </Component>
+    </Directory>
+<?endif?>
+    <Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
+        <Condition>VBOX_PYTHON_IS_INSTALLED</Condition>
+    </Component>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergePython.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergePython.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VBoxMergePython.wxs	(revision 51023)
@@ -34,45 +34,14 @@
                  SummaryCodepage="1252"/>
 
-        <!-- Custom actions -->
-        <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
-        <CustomAction Id="ca_InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Execute="deferred" Return="check" Impersonate="no"/>
-        <CustomAction Id="ca_InstallPythonAPIArgs" Property="ca_InstallPythonAPI" Value="[INSTALLDIR]" Execute="immediate"/>
-
         <!-- Here comes the file/directory list -->
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="MergeRedirectFolder" FileSource=".">
 
-<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
-                <!-- Python bindings -->
-                <Component Id="cp_VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593" Win64="$(var.Property_Win64)">
-                     <File Id="file_vboxapisetup.py" Name="vboxapisetup.py"
-                           Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py"
-                           DiskId="$(var.Property_DiskIdCommon)" />
-                </Component>
-                <Directory Id="dir_SDKVBoxAPI" Name="vboxapi">
-                    <Component Id="cp_VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593" Win64="$(var.Property_Win64)">
-                        <File Id="file___init__.py" Name="__init__.py"
-                              Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-                        <File Id="file_VirtualBox_constants.py" Name="VirtualBox_constants.py"
-                              Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py"
-                              DiskId="$(var.Property_DiskIdCommon)" />
-                    </Component>
-                </Directory>
-<?endif?>
-                <Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
-                    <Condition>VBOX_PYTHON_IS_INSTALLED</Condition>
-                </Component>
+                <?include VBoxMergePython.wxi ?>
+                <?include VBoxMergePythonCA.wxi ?>
 
             </Directory> <!-- MergeRedirectFolder -->
         </Directory> <!-- TARGETDIR -->
 
-        <InstallExecuteSequence>
-
-            <Custom Action="ca_InstallPythonAPIArgs" Before="ca_InstallPythonAPI" ><![CDATA[&VBoxPython=3]]></Custom>
-            <Custom Action="ca_InstallPythonAPI" Before="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>
-
-        </InstallExecuteSequence>
-
     </Module>
 </Wix>
Index: /trunk/src/VBox/Installer/win/VBoxMergePythonCA.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergePythonCA.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergePythonCA.wxi	(revision 51023)
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<?xml version="1.0"?>
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <!-- Custom actions -->
+    <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
+    <CustomAction Id="ca_InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Execute="deferred" Return="check" Impersonate="no"/>
+    <CustomAction Id="ca_InstallPythonAPIArgs" Property="ca_InstallPythonAPI" Value="[INSTALLDIR]" Execute="immediate"/>
+
+    <InstallExecuteSequence>
+
+        <Custom Action="ca_InstallPythonAPIArgs" Before="ca_InstallPythonAPI" ><![CDATA[&VBoxPython=3]]></Custom>
+        <Custom Action="ca_InstallPythonAPI" Before="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>
+
+    </InstallExecuteSequence>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi	(revision 51023)
+++ /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxi	(revision 51023)
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!--
+    VirtualBox Windows Installation Script (WiX)
+
+    Copyright (C) 2006-2014 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
+         xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
+
+    <Directory Id="dir_VBoxUSBFilter" Name="filter">
+        <Component Id="cp_USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65" Win64="$(var.Property_Win64)">
+            <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
+                            Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
+            <File Id="file_VBoxUSBMon.sys" Name="VBoxUSBMon.sys"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
+            <File Id="file_VBoxUSBMon.inf" Name="VBoxUSBMon.inf"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
+<?if $(env.VBOX_SIGNING_MODE) != none ?>
+            <File Id="file_VBoxUSBMon.cat" Name="VBoxUSBMon.cat"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
+<?endif ?>
+        </Component>
+    </Directory>
+
+    <Directory Id="dir_VBoxUSBDevice" Name="device">
+        <Component Id="cp_USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0" Win64="$(var.Property_Win64)">
+            <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
+                            Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
+            <File Id="file_VBoxUSB.sys" Name="VBoxUSB.sys"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
+            <File Id="file_VBoxUSB.inf" Name="VBoxUSB.inf"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
+<?if $(env.VBOX_SIGNING_MODE) != none ?>
+            <File Id="file_VBoxUSB.cat" Name="VBoxUSB.cat"
+                  Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
+<?endif ?>
+        </Component>
+    </Directory>
+
+</Include>
Index: /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VBoxMergeUSB.wxs	(revision 51023)
@@ -19,19 +19,4 @@
      xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
 
-    <!-- Note: GUIDs in WiX *must* be uppercase! -->
-    <!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
-         a major upgrade (more than just fixing a few files) change the product GUID. We always do a major
-         upgrade even for minor VBox updates. For that only change the product ID and the product version.
-         The upgrade code *never* must be changed! -->
-
-    <!-- Update / Upgrade policies:
-         Update Type    Package Code    Product Version     Product Code    Upgrade Code
-         Small update   change          don't change        don't change    don't change
-         Minor update   change          change              don't change    don't change
-         Major upgrade  change          change              change          don't change -->
-
-    <!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
-         Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
-
     <Module Id="msm_VBoxUSB"
             Language="!(loc.LANG)"
@@ -53,33 +38,5 @@
             <Directory Id="MergeRedirectFolder" FileSource=".">
 
-                <Directory Id="dir_USBFilter" Name="filter">
-                    <Component Id="cp_USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65" Win64="$(var.Property_Win64)">
-                        <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
-                                        Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/>
-                        <File Id="file_VBoxUSBMon.sys" Name="VBoxUSBMon.sys"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" />
-                        <File Id="file_VBoxUSBMon.inf" Name="VBoxUSBMon.inf"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" />
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-                        <File Id="file_VBoxUSBMon.cat" Name="VBoxUSBMon.cat"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" />
-<?endif ?>
-                    </Component>
-                </Directory>
-
-                <Directory Id="dir_USBDevice" Name="device">
-                    <Component Id="cp_USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0" Win64="$(var.Property_Win64)">
-                        <!-- <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
-                                        Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/> -->
-                        <File Id="file_VBoxUSB.sys" Name="VBoxUSB.sys"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" />
-                        <File Id="file_VBoxUSB.inf" Name="VBoxUSB.inf"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" />
-<?if $(env.VBOX_SIGNING_MODE) != none ?>
-                        <File Id="file_VBoxUSB.cat" Name="VBoxUSB.cat"
-                              Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" />
-<?endif ?>
-                    </Component>
-                </Directory>
+                <?include VBoxMergeUSB.wxi ?>
 
             </Directory> <!-- MergeRedirectFolder -->
Index: /trunk/src/VBox/Installer/win/VirtualBox.wxs
===================================================================
--- /trunk/src/VBox/Installer/win/VirtualBox.wxs	(revision 51022)
+++ /trunk/src/VBox/Installer/win/VirtualBox.wxs	(revision 51023)
@@ -19,13 +19,18 @@
     <?include Properties.wxi ?>
 
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
     <!-- The merge module file names -->
     <?define Property_VBoxMergeApp = "$(env.VBOX_WIN_INST_MERGE_APP)" ?>
     <?define Property_VBoxMergeUSB = "$(env.VBOX_WIN_INST_MERGE_USB)" ?>
-<?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
-    <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
-<?endif ?>
+
+    <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
+        <?define Property_VBoxMergeNetworkFlt = "$(env.VBOX_WIN_INST_MERGE_NETFLT)" ?>
+    <?endif ?>
+
     <?define Property_VBoxMergeNetworkAdp = "$(env.VBOX_WIN_INST_MERGE_NETADP)" ?>
-<?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
-    <?define Property_VBoxMergePython = "$(env.VBOX_WIN_INST_MERGE_PYTHON)" ?>
+
+    <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
+        <?define Property_VBoxMergePython = "$(env.VBOX_WIN_INST_MERGE_PYTHON)" ?>
+    <?endif ?>
 <?endif ?>
 
@@ -118,6 +123,8 @@
     <!-- The media/binary IDs -->
     <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
-<?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "no" ?>
+    <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
         <Media Id="2" Cabinet="common.cab" EmbedCab="no" CompressionLevel="high" />
+    <?endif ?>
 <?endif ?>
     <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" />
@@ -169,17 +176,33 @@
         <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles">
             <Directory Id="INSTALLDIR" Name="$(env.VBOX_PRODUCT)">
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                 <Merge Id="msm_VBoxApp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeApp)" DiskId="1" />
+<?else ?>
+                <?include VBoxMergeApp.wxi ?>
+<?endif ?>
                 <Directory Id="dir_Drivers" Name="drivers">
                     <Directory Id="dir_USB" Name="USB">
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                         <Merge Id="msm_VBoxUSB" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeUSB)" DiskId="1" />
+<?else ?>
+                        <?include VBoxMergeUSB.wxi ?>
+<?endif ?>
                     </Directory>
                     <Directory Id="dir_Network" Name="network">
 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?>
                         <Directory Id="dir_NetFlt" Name="netflt">
+    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                             <Merge Id="msm_VBoxNetworkFlt" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkFlt)" DiskId="1" />
+    <?else ?>
+                            <?include VBoxMergeNetFlt.wxi ?>
+    <?endif ?>
                         </Directory>
 <?endif ?>
                         <Directory Id="dir_NetAdp" Name="netadp">
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                             <Merge Id="msm_VBoxNetworkAdp" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergeNetworkAdp)" DiskId="1" />
+<?else ?>
+                            <?include VBoxMergeNetAdp.wxi ?>
+<?endif ?>
                         </Directory>
                     </Directory>
@@ -188,5 +211,9 @@
                 <Directory Id="dir_SDK" Name="sdk">
                     <Directory Id="dir_SDKInstall" Name="install">
+    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                         <Merge Id="msm_VBoxPython" Language="!(loc.LANG)" SourceFile="$(var.Property_VBoxMergePython)" DiskId="1" />
+    <?else ?>
+                        <?include VBoxMergePython.wxi ?>
+    <?endif ?>
                     </Directory>
                 </Directory>
@@ -247,9 +274,38 @@
              ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
              Absent="disallow" AllowAdvertise="no" >
+ <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
         <MergeRef Id="msm_VBoxApp" />
-
+<?else ?>
         <ComponentRef Id="cp_StartMenuVBox" />
         <ComponentRef Id="cp_DesktopShortcut" />
         <ComponentRef Id="cp_QuickLaunchVBox" />
+        <ComponentRef Id="cp_RegisterExtensions" />
+
+    <?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
+            <ComponentRef Id="cp_Docs" />
+    <?endif?>
+            <ComponentRef Id="cp_NLS" />
+    <?if $(env.VBOX_WITH_32_ON_64_MAIN_API) = "yes" ?>
+            <ComponentRef Id="cp_MainCOM_x86" />
+    <?endif?>
+            <ComponentRef Id="cp_MainCOM" />
+            <ComponentRef Id="cp_MainBinaries" />
+    <?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
+            <ComponentRef Id="cp_QtAccessible" />
+    <?endif?>
+    <?if $(env.VBOX_WITH_PYTHON) = "yes" ?>
+            <ComponentRef Id="cp_VBoxPyInst" />
+            <ComponentRef Id="cp_VBoxPyMod" />
+    <?endif?>
+
+    <?if $(env.VBOX_WITH_CROGL) = "yes" ?>
+            <ComponentRef Id="cp_VBoxCROpenGL" />
+    <?endif?>
+            <ComponentRef Id="cp_VBoxSDLBinaries" />
+    <?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
+            <ComponentRef Id="cp_VBoxWebService" />
+    <?endif?>
+            <ComponentRef Id="cp_VBoxDrv" />
+    <?endif ?>
 
         <Feature Id="VBoxUSB" Title="VirtualBox USB Support" Level="1"
@@ -257,5 +313,10 @@
                  ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
                  Absent="allow" AllowAdvertise="no" >
+<?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
             <MergeRef Id="msm_VBoxUSB" />
+<?else ?>
+            <ComponentRef Id="cp_USBFilterDriver" />
+            <ComponentRef Id="cp_USBDeviceDriver" />
+<?endif ?>
         </Feature>
 
@@ -269,5 +330,9 @@
                      ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
                      Absent="allow" AllowAdvertise="no" >
+    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                 <MergeRef Id="msm_VBoxNetworkFlt" />
+    <?else ?>
+                <ComponentRef Id="cp_NetFltDriver" />
+    <?endif ?>
             </Feature>
             <Feature Id="VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"
@@ -275,5 +340,9 @@
                      ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
                      Absent="allow" AllowAdvertise="no" >
+    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                 <MergeRef Id="msm_VBoxNetworkAdp" />
+    <?else ?>
+                <ComponentRef Id="cp_NetAdpDriver" />
+    <?endif ?>
             </Feature>
         </Feature>
@@ -285,5 +354,9 @@
                  ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand"
                  Absent="allow" AllowAdvertise="no" >
-            <MergeRef Id="msm_VBoxPython" />
+    <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
+                <MergeRef Id="msm_VBoxPython" />
+    <?else ?>
+                <ComponentRef Id="cp_VBoxPythonBinding" />
+    <?endif ?>
         </Feature>
 <?endif?>
