Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 49910)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 49911)
@@ -909,9 +909,22 @@
  VBoxProxyStub_TEMPLATE = VBOXMAINCOMP
  VBoxProxyStub_DEFS     = REGISTER_PROXY_DLL
+ VBoxProxyStub_DEFS.win.x86 = WIN32
  VBoxProxyStub_SOURCES  = \
  	$(VBoxCOM_0_OUTDIR)/dlldata.c \
  	$(VBoxCOM_0_OUTDIR)/VirtualBox_p.c \
  	$(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
-       src-all/win/VBoxProxyStub.def
+ 	src-all/win/VBoxProxyStub.def
+
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
+  DLLS += VBoxProxyStub-x86
+  VBoxProxyStub-x86_TEMPLATE = VBoxMainComp-x86
+  VBoxProxyStub-x86_DEFS     = REGISTER_PROXY_DLL
+  VBoxProxyStub-x86_DEFS.win.x86 = WIN32
+  VBoxProxyStub-x86_SOURCES  = \
+  	$(VBoxCOM-x86_0_OUTDIR)/dlldata.c \
+  	$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_p.c \
+  	$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c \
+  	src-all/win/VBoxProxyStub.def
+ endif
 endif
 
@@ -976,4 +989,5 @@
 + $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
 	$(VBOX_WIN_MIDL) /nologo /env win32 /target NT51 \
+		/robust /protocol all \
 		/out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)) \
 		/tlb $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb) \
Index: /trunk/src/VBox/Main/src-all/win/comregister.cmd
===================================================================
--- /trunk/src/VBox/Main/src-all/win/comregister.cmd	(revision 49910)
+++ /trunk/src/VBox/Main/src-all/win/comregister.cmd	(revision 49911)
@@ -102,11 +102,14 @@
 %_VBOX_DIR%VBoxSVC.exe /UnregServer
 regsvr32 /s /u %_VBOX_DIR%VBoxC.dll
+if exist %_VBOX_DIR%VBoxProxyStub.dll     %windir%\system32\regsvr32 /s /u %_VBOX_DIR%VBoxProxyStub.dll
 @if "%1" == "-u" goto end
 %_VBOX_DIR%VBoxSVC.exe /RegServer
 regsvr32 /s    %_VBOX_DIR%VBoxC.dll
+@if "%1" == "--no-proxy" goto end
+if exist %_VBOX_DIR%VBoxProxyStub.dll     %windir%\system32\regsvr32 /s %_VBOX_DIR%VBoxProxyStub.dll
 @echo off
 goto end
 
-REM Unregister both first, then register them. The order matters here.
+REM Unregister all first, then register them. The order matters here.
 :register_amd64
 @echo on
@@ -114,8 +117,13 @@
 %windir%\syswow64\regsvr32 /s /u %_VBOX_DIR%x86\VBoxClient-x86.dll
 %windir%\system32\regsvr32 /s /u %_VBOX_DIR%VBoxC.dll
+if exist %_VBOX_DIR%VBoxProxyStub.dll     %windir%\system32\regsvr32 /s /u %_VBOX_DIR%VBoxProxyStub.dll
+if exist %_VBOX_DIR%VBoxProxyStub-x86.dll %windir%\system32\regsvr32 /s /u %_VBOX_DIR%VBoxProxyStub-x86.dll
 @if "%1" == "-u" goto end
 %_VBOX_DIR%VBoxSVC.exe /RegServer
 %windir%\system32\regsvr32 /s    %_VBOX_DIR%VBoxC.dll
 %windir%\syswow64\regsvr32 /s    %_VBOX_DIR%x86\VBoxClient-x86.dll
+@if "%1" == "--no-proxy" goto end
+if exist %_VBOX_DIR%VBoxProxyStub.dll     %windir%\system32\regsvr32 /s %_VBOX_DIR%VBoxProxyStub.dll
+if exist %_VBOX_DIR%VBoxProxyStub-x86.dll %windir%\system32\regsvr32 /s %_VBOX_DIR%VBoxProxyStub-x86.dll
 @echo off
 
