Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 15911)
+++ /trunk/Config.kmk	(revision 15912)
@@ -409,5 +409,5 @@
 ifdef VBOX_WITH_HARDENING
  if1of ($(KBUILD_TARGET), solaris)
-  VBOX_PATH_APP_PRIVATE      = /opt/VirtualBox
+  VBOX_PATH_APP_PRIVATE      = /opt/VirtualBox/$(if-expr $(KBUILD_TARGET_ARCH) == "amd64",amd64,i386)
  else ifeq ($(KBUILD_TARGET),darwin)
   VBOX_PATH_APP_PRIVATE      = /Applications/VirtualBox.app/Contents/MacOS
Index: /trunk/src/VBox/Installer/solaris/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Installer/solaris/Makefile.kmk	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/Makefile.kmk	(revision 15912)
@@ -34,18 +34,35 @@
 #
 VBOX_PATH_SOL_INST_SRC := $(PATH_SUB_CURRENT)
-SOLARIS_INST_DIR := $(PATH_TARGET)/Installer/solaris/install
-SOLARIS_DBG_DIR  := $(PATH_TARGET)/Installer/solaris/installdbg
-SOLARIS_VBI_DIR  := $(PATH_TARGET)/Installer/solaris/installvbi
+SOLARIS_DIR_NAME_64    := amd64
+SOLARIS_DIR_NAME_32    := i386
+SOLARIS_INST_OUT_DIR   := $(PATH_TARGET)/Installer/solaris
+SOLARIS_INST_DIR       := $(PATH_TARGET)/Installer/solaris/install
+SOLARIS_INST_DIR_32    := $(SOLARIS_INST_DIR)/$(SOLARIS_DIR_NAME_32)
+SOLARIS_INST_DIR_64    := $(SOLARIS_INST_DIR)/$(SOLARIS_DIR_NAME_64)
+
+SOLARIS_OUT_BIN_64     := $(PATH_OUT_BASE)/solaris.amd64/$(KBUILD_TYPE)/bin
+SOLARIS_OUT_BIN_32     := $(PATH_OUT_BASE)/solaris.x86/$(KBUILD_TYPE)/bin
+SOLARIS_OUT_BIN        := $(PATH_BIN)
+
+SOLARIS_DBG_DIR        := $(PATH_TARGET)/Installer/solaris/installdbg
+SOLARIS_VBI_DIR        := $(PATH_TARGET)/Installer/solaris/installvbi
+
 ifeq ($(KBUILD_TARGET_ARCH),amd64)
- SOL_DBG_OBJCOPY  := /usr/sfw/bin/gobjcopy --only-keep-debug
+ SOLARIS_INST_DIR_ISA  := $(SOLARIS_INST_DIR_64)
+ SOL_DBG_OBJCOPY       := /usr/sfw/bin/gobjcopy --only-keep-debug
 else
- SOL_DBG_OBJCOPY  := $(CP) -p    # Solaris ld/gobjcopy(2.15) don't get along on x86, works only on amd64. So just using cp for now.
-endif
-SOL_OBJCOPY      := /usr/sfw/bin/gobjcopy --strip-unneeded -R .comment
+ SOLARIS_INST_DIR_ISA  := $(SOLARIS_INST_DIR_32)
+ SOL_DBG_OBJCOPY       := $(CP) -p    # Solaris ld/gobjcopy(2.15) don't get along on x86, works only on amd64. So just using cp for now.
+endif
+SOL_OBJCOPY            := /usr/sfw/bin/gobjcopy --strip-unneeded -R .comment
 
 # Base package
 PKGINFO_ARCH     = $(shell uname -p)
 PKGINFO_REVSTAMP = $(date %Y.%m.%d.%H.%M)
-PKG_FILENAME     = VirtualBox-$(VBOX_VERSION_STRING)-SunOS-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV)
+ifndef VBOX_WITH_COMBINED_SOLARIS_PACKAGE
+ PKG_FILENAME    = VirtualBox-$(VBOX_VERSION_STRING)-SunOS-$(KBUILD_TARGET_ARCH)-r$(VBOX_SVN_REV)
+else
+ PKG_FILENAME    = VirtualBox-$(VBOX_VERSION_STRING)-SunOS-r$(VBOX_SVN_REV)
+endif
 
 # Debug package
@@ -53,14 +70,16 @@
 
 # Kernel interface (vbi) package
-VBIPKG_FILENAME = VirtualBoxKern-$(VBOX_VERSION_STRING)-SunOS-r$(VBOX_SVN_REV)
+VBIPKG_FILENAME  = VirtualBoxKern-$(VBOX_VERSION_STRING)-SunOS-r$(VBOX_SVN_REV)
 
 #
 # Targets
 #
-PROGRAMS        += VBoxZoneAccess
-INSTALLS        += solaris-doc
-PACKING         += $(PATH_BIN)/$(PKG_FILENAME).tar.gz $(PATH_BIN)/$(DBG_ARCHIVE)
-
-OTHER_CLEAN     += $(addprefix $(SOLARIS_INST_DIR)/,\
+PROGRAMS         += VBoxZoneAccess VBoxISAExec
+INSTALLS         += solaris-doc
+
+BLDDIRS          += $(SOLARIS_INST_OUT_DIR) $(SOLARIS_INST_DIR) $(SOLARIS_VBI_DIR) $(SOLARIS_DBG_DIR)
+PACKING          += $(PATH_BIN)/$(PKG_FILENAME).tar.gz $(PATH_BIN)/$(DBG_ARCHIVE)
+
+OTHER_CLEAN      += $(addprefix $(SOLARIS_INST_DIR)/,\
 	vbox.pkginfo vbox.copyright vbox.space vbox.pkgresponse \
         makepackage.sh prototype postinstall.sh preremove.sh)
@@ -75,8 +94,15 @@
 
 #
+# VBoxISAExec
+#
+VBoxISAExec_TEMPLATE = VBOXR3EXE
+VBoxISAExec_DEPS     = $(VBOX_SVN_REV_KMK)
+VBoxISAExec_SOURCES  = VBoxISAExec.c
+
+#
 # Solaris installs.
 #
-solaris-doc_INST = bin/
-solaris-doc_MODE = a+r,u+w
+solaris-doc_INST    = bin/
+solaris-doc_MODE    = a+r,u+w
 solaris-doc_SOURCES = \
 	$(if $(VBOX_OSE),,$(VBOX_BRAND_LICENSE_TXT)=>LICENSE) \
@@ -145,13 +171,13 @@
 	VMMR0.r0
 
-VBOX_SOL_PYTHON_INST =
+VBOX_SOL_PYTHON_DIR  =
 ifeq ($(KBUILD_TARGET_ARCH),amd64)
- VBOX_SOL_PYTHON_INST = 64/
+ VBOX_SOL_PYTHON_DIR = 64
  SOL64_PKG = 1
-ifndef VBOX_WITH_NEW_RECOMPILER
- SOLARIS_STRIP_OBJS += \
+ ifndef VBOX_WITH_NEW_RECOMPILER
+  SOLARIS_STRIP_OBJS += \
  	VBoxREM2.rel
- NEED_REL = 1
-endif
+  NEED_REL = 1
+ endif
 endif
 
@@ -159,18 +185,10 @@
 SOLARIS_NO_STRIP = \
 	components/VBoxXPCOMBase.xpt \
-	components/VirtualBox_XPCOM.xpt
+	components/VirtualBox_XPCOM.xpt \
+	$(if $(and $(VBOX_LICENSE_FILES),$(VBOX_WITH_QT4GUI)),$(VBOX_LICENSE_FILES))
 
 # Things packed explicitly, not from $(PATH_BIN), track these to clean-up properly
-# The extra Qt libs packed under EXTRAS are purely for running VBoxQtconfig
 SOLARIS_EXTRAS = \
 	$(if $(VBOX_OSE),,LICENSE) \
-	$(if $(and $(VBOX_LICENSE_FILES),$(VBOX_WITH_QT4GUI)),$(VBOX_LICENSE_FILES)) \
-	$(if $(VBOX_WITH_QT4GUI),VBoxQtconfig,) \
-	$(if $(VBOX_WITH_QT4GUI),virtualbox.desktop,) \
-	$(if $(VBOX_WITH_QT4GUI),libVBoxQtNetwork.so.4,) \
-	$(if $(VBOX_WITH_QT4GUI),libVBoxQtXml.so.4,) \
-	$(if $(VBOX_WITH_QT4GUI),libVBoxQtSql.so.4,) \
-	$(if $(VBOX_WITH_QT4GUI),libVBoxQt3Support.so.4,) \
-	$(if $(VBOX_WITH_VBOXSDL),libSDL-1.2.so.0,) \
 	VBox.png \
 	autoresponse \
@@ -179,20 +197,33 @@
 	vboxdrv.sh \
 	VBox.sh \
+	$(if $(VBOX_WITH_VBOXSDL),libSDL-1.2.so.0,) \
 	$(if $(not $(VBOX_WITH_NETFLT))vnic_setup.sh,) \
 	$(if $(not $(VBOX_WITH_NETFLT))vnic_term.sh,) \
+	$(if $(VBOX_WITH_QT4GUI),virtualbox.desktop,) \
 	virtualbox-webservice.xml \
 	virtualbox-zoneaccess.xml \
 	smf-vboxwebsrv.sh \
+	VBoxQtconfig \
+	VBoxISAExec \
 	vbox.copyright \
 	ReadMe.txt
 
+# These extra Qt libs are purely for running VBoxQtconfig
+ifdef VBOX_WITH_QT4GUI
+ SOLARIS_QTLIBS = libVBoxQtNetwork.so.4 \
+	libVBoxQtXml.so.4 \
+	libVBoxQtSql.so.4 \
+	libVBoxQt3Support.so.4
+endif
+
+
 ifdef VBOX_WITH_QT4GUI
  include $(PATH_ROOT)/src/VBox/Frontends/VirtualBox4/nls/ApprovedLanguages.kmk
- SOLARIS_NLS := $(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
-endif
-
-# Documentation
+ SOLARIS_NO_STRIP += $(foreach f,$(VBOX_APPROVED_GUI_LANGUAGES),nls/VirtualBox_$(f).qm nls/qt_$(f).qm)
+endif
+
+# Documentation (packed as DOCS as they are arch. neutral)
 ifdef VBOX_WITH_DOCS_PACKING
- SOLARIS_NO_STRIP += \
+ SOLARIS_COMMON = \
  	VirtualBox.chm \
 	UserManual.pdf \
@@ -205,9 +236,8 @@
 	VBoxVRDP.so \
 	VRDPAuth.so
- SOLARIS_NO_STRIP += \
+ SOLARIS_COMMON += \
 	rdesktop-vrdp.tar.gz
  ifdef VBOX_WITH_VRDP_RDESKTOP
-  SOLARIS_NO_STRIP += \
-	rdesktop-vrdp-keymaps
+  SOLARIS_COMMON += $(addprefix rdesktop-vrdp-keymaps/,$(notdir $(wildcard $(SOLARIS_OUT_BIN)/rdesktop-vrdp-keymaps/*)))
   SOLARIS_STRIP_EXES += \
 	rdesktop-vrdp
@@ -234,6 +264,7 @@
 	$(SOLARIS_STRIP_OBJS) \
 	$(SOLARIS_NO_STRIP) \
-	$(SOLARIS_NLS) \
-	$(SOLARIS_EXTRAS)
+	$(SOLARIS_EXTRAS) \
+	$(SOLARIS_QTLIBS) \
+	$(SOLARIS_COMMON)
 
 OTHER_CLEAN += \
@@ -247,6 +278,51 @@
 	$(SOLARIS_VBI_DIR)/$(VBIPKG_FILENAME).pkg
 
+ifdef VBOX_WITH_COMBINED_SOLARIS_PACKAGE
+ SOLARIS_ARCH_DEPFILES = $(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_EXES)) \
+	$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_BINS)) \
+	$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_OBJS)) \
+	$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_NO_STRIP)) \
+	$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_QTLIBS)) \
+	$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_EXES)) \
+	$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_BINS)) \
+	$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_OBJS)) \
+	$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_NO_STRIP)) \
+	$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_QTLIBS))
+else
+ SOLARIS_ARCH_DEPFILES = $(addprefix $(SOLARIS_INST_DIR_ISA)/,$(SOLARIS_STRIP_EXES)) \
+	$(addprefix $(SOLARIS_INST_DIR_ISA)/,$(SOLARIS_STRIP_BINS)) \
+	$(addprefix $(SOLARIS_INST_DIR_ISA)/,$(SOLARIS_STRIP_OBJS)) \
+	$(addprefix $(SOLARIS_INST_DIR_ISA)/,$(SOLARIS_NO_STRIP)) \
+	$(addprefix $(SOLARIS_INST_DIR_ISA)/,$(SOLARIS_QTLIBS))
+endif
+SOLARIS_ARCH_DEPFILES += $(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_COMMON))
+
+BLDDIRS += $(foreach d,\
+	rdesktop-vrdp-keymaps \
+	$(SOLARIS_DIR_NAME_64) \
+	$(SOLARIS_DIR_NAME_64)/additions \
+	$(SOLARIS_DIR_NAME_64)/components \
+	$(SOLARIS_DIR_NAME_64)/nls \
+	$(SOLARIS_DIR_NAME_64)/accessible \
+	$(SOLARIS_DIR_NAME_64)/$(VBOX_SOL_PYTHON_DIR) \
+	$(SOLARIS_DIR_NAME_32) \
+	$(SOLARIS_DIR_NAME_32)/additions \
+	$(SOLARIS_DIR_NAME_32)/components \
+	$(SOLARIS_DIR_NAME_32)/nls \
+	$(SOLARIS_DIR_NAME_32)/accessible \
+,$(SOLARIS_INST_DIR)/$(d)/)
+
+BLDDIRS += $(foreach d,\
+	amd64 \
+,$(SOLARIS_VBI_DIR)/$(d)/)
+
+BLDDIRS += $(foreach d,\
+	additions \
+	components \
+	accessible \
+,$(SOLARIS_DBG_DIR)/$(d)/)
+
+
 include $(KBUILD_PATH)/subfooter.kmk
-
 
 #
@@ -278,11 +354,14 @@
 		$(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicinit_solaris.sh,) \
 		$(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicterm_solaris.sh,) \
-		$(addprefix $(PATH_BIN)/,$(filter-out $(SOLARIS_EXTRAS),$(SOLARIS_ARCH_FILES))) \
-		$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_EXES)) \
-		$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_BINS)) \
-		$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_OBJS)) \
-		$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_NO_STRIP))
+		$(addprefix $(PATH_BIN)/,$(filter-out $(SOLARIS_EXTRAS) $(SOLARIS_QTLIBS),$(SOLARIS_ARCH_FILES))) \
+		VBoxISAExec \
+		$(SOLARIS_ARCH_DEPFILES)
 	$(call MSG_L1,Installing binaries $(SOLARIS_INST_DIR))
-	$(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(INSTALL) -m 0644 $(PATH_BIN)/additions/VBoxGuestAdditions.iso               $(SOLARIS_INST_DIR)/additions/)
+ifdef VBOX_WITH_COMBINED_SOLARIS_PACKAGE
+	$(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN_64)/additions/VBoxGuestAdditions.iso            $(SOLARIS_INST_DIR_64)/additions/)
+	$(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN_32)/additions/VBoxGuestAdditions.iso            $(SOLARIS_INST_DIR_32)/additions/)
+else
+	$(QUIET)$(if $(VBOX_WITH_ADDITIONS_PACKING),$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/additions/VBoxGuestAdditions.iso               $(SOLARIS_INST_DIR_ISA)/additions/)
+endif
 	$(call MSG_L1,Installing files $(SOLARIS_INST_DIR))
 	$(QUIET)$(SED) \
@@ -297,18 +376,26 @@
 	$(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(PATH_BIN)/LICENSE                                        $(SOLARIS_INST_DIR)/LICENSE)
 	$(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(PATH_BIN)/LICENSE                                        $(SOLARIS_INST_DIR)/vbox.copyright)
-	$(QUIET)$(if $(and $(VBOX_LICENSE_BINS),$(VBOX_WITH_QT4GUI)),$(INSTALL) -m 0644 $(VBOX_LICENSE_BINS)    $(SOLARIS_INST_DIR)/)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/libVBoxQtNetwork.so.4        $(SOLARIS_INST_DIR)/libVBoxQtNetwork.so.4,)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/libVBoxQtXml.so.4            $(SOLARIS_INST_DIR)/libVBoxQtXml.so.4,)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/libVBoxQtSql.so.4            $(SOLARIS_INST_DIR)/libVBoxQtSql.so.4,)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/libVBoxQt3Support.so.4       $(SOLARIS_INST_DIR)/libVBoxQt3Support.so.4,)
-	$(QUIET)$(if $(VBOX_WITH_VBOXSDL),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2 $(SOLARIS_INST_DIR)/libSDL-1.2.so.0,)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0755 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/bin/qtconfig      $(SOLARIS_INST_DIR)/VBoxQtconfig,)
-	@# VBoxPython.so requires special handling as it is NOT in the correct out path to begin with. 
-	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(PATH_BIN)/VBoxPython.so $(SOLARIS_INST_DIR)/$(VBOX_SOL_PYTHON_INST)VBoxPython.so)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(CP) $(foreach f,$(SOLARIS_NLS),$(PATH_BIN)/$(f)) $(SOLARIS_INST_DIR)/nls,)
+ifdef VBOX_WITH_SOLARIS_COMBINED_PACKAGE
+	$(QUIET)$(if $(VBOX_WITH_VBOXSDL),$(INSTALL) -m 0644 $(PATH_DEVTOOLS)/solaris.x86//libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2    $(SOLARIS_INST_DIR_32)/libSDL-1.2.so.0,)
+	$(QUIET)$(if $(VBOX_WITH_VBOXSDL),$(INSTALL) -m 0644 $(PATH_DEVTOOLS)/solaris.amd64/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2   $(SOLARIS_INST_DIR_64)/libSDL-1.2.so.0,)
+	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(SOLARIS_OUT_BIN_32)/VBoxPython.so    $(SOLARIS_INST_DIR_32)/VBoxPython.so,)
+	@# @todo -XXX- how to get rid of this manual MKDIR ?
+	$(QUIET)$(MKDIR) $(SOLARIS_INST_DIR_64)/$(VBOX_SOL_PYTHON_DIR)
+	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(SOLARIS_OUT_BIN_64)/VBoxPython.so    $(SOLARIS_INST_DIR_64)/$(VBOX_SOL_PYTHON_DIR)/VBoxPython.so,)
+	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(SOLARIS_OUT_BIN_64)/VBoxPython.so    $(SOLARIS_INST_DIR_64)/$(VBOX_SOL_PYTHON_DIR)/VBoxPython.so,)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0755 $(PATH_DEVTOOLS)/solaris.x86/qt/v4.3.3-r1/bin/qtconfig           $(SOLARIS_INST_DIR_32)/VBoxQtconfig,)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0755 $(PATH_DEVTOOLS)/solaris.amd64/qt/v4.3.3-r1/bin/qtconfig         $(SOLARIS_INST_DIR_64)/VBoxQtconfig,)
+	$(QUIET)$(INSTALL) -m 0755 $(SOLARIS_OUT_BIN_32)/VBoxISAExec                                                         $(SOLARIS_INST_DIR)/VBoxISAExec
+else
+	$(QUIET)$(if $(VBOX_WITH_VBOXSDL),$(INSTALL) -m 0644 $(PATH_DEVTOOLS_TRG)/libSDL/v1.2.13/lib/libSDL-1.2.so.0.11.2    $(SOLARIS_INST_DIR_ISA)/libSDL-1.2.so.0,)
+	@# @todo -XXX- how to get rid of this manual MKDIR ?
+	$(QUIET)$(if $(SOL64_PKG),$(MKDIR) -p $(SOLARIS_INST_DIR_64)/$(VBOX_SOL_PYTHON_DIR),)
+	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(SOLARIS_OUT_BIN)/VBoxPython.so       $(SOLARIS_INST_DIR_ISA)/$(VBOX_SOL_PYTHON_DIR)/VBoxPython.so,)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0755 $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/bin/qtconfig                   $(SOLARIS_INST_DIR_ISA)/VBoxQtconfig,)
+	$(QUIET)$(INSTALL) -m 0755 $(SOLARIS_OUT_BIN)/VBoxISAExec                                                            $(SOLARIS_INST_DIR)/VBoxISAExec
+endif
+	$(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-zoneaccess.xml                                       $(SOLARIS_INST_DIR)/virtualbox-zoneaccess.xml
 	$(QUIET)$(if $(VBOX_WITH_WEBSERVICES),$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-webservice.xml         $(SOLARIS_INST_DIR)/virtualbox-webservice.xml,)
 	$(QUIET)$(if $(VBOX_WITH_WEBSERVICES),$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/smf-vboxwebsrv.sh                 $(SOLARIS_INST_DIR)/smf-vboxwebsrv.sh,)
-	$(QUIET)$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox-zoneaccess.xml                          $(SOLARIS_INST_DIR)/virtualbox-zoneaccess.xml
-	$(QUIET)$(if $(VBOX_WITH_VRDP_RDESKTOP),$(INSTALL) -m 644 $(wildcard $(PATH_BIN)/rdesktop-vrdp-keymaps/*) $(SOLARIS_INST_DIR)/rdesktop-vrdp-keymaps/,)
 	$(QUIET)$(if $(not $(VBOX_WITH_NETFLT))$(INSTALL) -m 0755 $(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicinit_solaris.sh            $(SOLARIS_INST_DIR)/vnic_setup.sh,)
 	$(QUIET)$(if $(not $(VBOX_WITH_NETFLT))$(INSTALL) -m 0755 $(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicterm_solaris.sh            $(SOLARIS_INST_DIR)/vnic_term.sh,)
@@ -321,5 +408,5 @@
 	$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/VBox.sh                                            $(SOLARIS_INST_DIR)/VBox.sh
 	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(INSTALL) -m 0644 $(VBOX_PATH_SOL_INST_SRC)/virtualbox.desktop        $(SOLARIS_INST_DIR)/virtualbox.desktop,)
-	$(QUIET)$(INSTALL) -m 0644 $(PATH_BIN)/VBox.png                                                         $(SOLARIS_INST_DIR)/VBox.png
+	$(QUIET)$(INSTALL) -m 0644 $(SOLARIS_OUT_BIN)/VBox.png                                                  $(SOLARIS_INST_DIR)/VBox.png
 	$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/postinstall.sh                                     $(SOLARIS_INST_DIR)/postinstall.sh
 	$(QUIET)$(INSTALL) -m 0755 $(VBOX_PATH_SOL_INST_SRC)/preremove.sh                                       $(SOLARIS_INST_DIR)/preremove.sh
@@ -338,25 +425,63 @@
 		$(SOLARIS_INST_DIR) \
 		$(PKG_FILENAME) \
-		$(KBUILD_TARGET_ARCH) \
+		$(if $(VBOX_WITH_SOLARIS_COMBINED_PACKAGE),neutral,$(KBUILD_TARGET_ARCH)) \
 		$(VBOX_SVN_REV) \
 		$(if $(VBOX_WITH_SOLARIS_VBI),$(VBIPKG_FILENAME).pkg,)
-	$(QUIET)$(INSTALL) -m 0644 $(SOLARIS_INST_DIR)/$(PKG_FILENAME).tar.gz $(PATH_BIN)
+	$(QUIET)$(INSTALL) -m 0644 $(SOLARIS_INST_DIR)/$(PKG_FILENAME).tar.gz $(SOLARIS_OUT_BIN)
 	@# Clean up files emitted as side-effect or result of packing
 	@#$(QUIET)$(RM) -Rf $(SOLARIS_INST_DIR)
 
 
-$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_BINS)): \
-		$(SOLARIS_INST_DIR)/% : $(PATH_BIN)/% | $$(dir $$@)
+#
+# 32-bit
+#
+$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_BINS)): \
+		$(SOLARIS_INST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
 	$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
 
-$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_EXES)): \
-		$(SOLARIS_INST_DIR)/% : $(PATH_BIN)/% | $$(dir $$@)
+$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_EXES)): \
+		$(SOLARIS_INST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
 	$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
 
-$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_STRIP_OBJS)): \
-		$(SOLARIS_INST_DIR)/% : $(PATH_BIN)/% | $$(dir $$@)
+$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_STRIP_OBJS)): \
+		$(SOLARIS_INST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
 	$(if $(VBOX_DO_STRIP),$(SOL_OBJCOPY) $< $@, $(INSTALL) -m 0644 $< $@)
 
-$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_NO_STRIP)): \
+$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_NO_STRIP)): \
+		$(SOLARIS_INST_DIR_32)/% : $(SOLARIS_OUT_BIN_32)/% | $$(dir $$@)
+	$(INSTALL) -m 0644 $< $@
+
+$(addprefix $(SOLARIS_INST_DIR_32)/,$(SOLARIS_QTLIBS)): \
+		$(SOLARIS_INST_DIR_32)/% : $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/% | $$(dir $$@)
+	$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
+
+#
+# 64-bit
+#
+$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_BINS)): \
+		$(SOLARIS_INST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
+	$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
+
+$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_EXES)): \
+		$(SOLARIS_INST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
+	$(INSTALL) -m 0755 $(if $(VBOX_DO_STRIP),-s,) $< $@
+
+$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_STRIP_OBJS)): \
+		$(SOLARIS_INST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
+	$(if $(VBOX_DO_STRIP),$(SOL_OBJCOPY) $< $@, $(INSTALL) -m 0644 $< $@)
+
+$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_NO_STRIP)): \
+		$(SOLARIS_INST_DIR_64)/% : $(SOLARIS_OUT_BIN_64)/% | $$(dir $$@)
+	$(INSTALL) -m 0644 $< $@
+
+$(addprefix $(SOLARIS_INST_DIR_64)/,$(SOLARIS_QTLIBS)): \
+		$(SOLARIS_INST_DIR_64)/% : $(PATH_DEVTOOLS_TRG)/qt/v4.3.3-r1/lib/% | $$(dir $$@)
+	$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s,) $< $@
+
+
+#
+# Common (32-bit and 64-bit)
+#
+$(addprefix $(SOLARIS_INST_DIR)/,$(SOLARIS_COMMON)): \
 		$(SOLARIS_INST_DIR)/% : $(PATH_BIN)/% | $$(dir $$@)
 	$(INSTALL) -m 0644 $< $@
@@ -379,16 +504,32 @@
 	$(QUIET)$(RM) -Rf $(SOLARIS_VBI_DIR)
 	@# -XXX- This must be fixed badly, we create directories needed for main package here!
-	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR)/additions
-	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR)/components
-	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(MKDIR) -p $(SOLARIS_INST_DIR)/$(VBOX_SOL_PYTHON_INST),)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR)/nls,)
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR)/accessible,)
-	$(QUIET)$(if $(VBOX_WITH_VRDP_RDESKTOP),$(MKDIR) -p $(SOLARIS_INST_DIR)/rdesktop-vrdp-keymaps,)
+ifdef VBOX_WITH_COMBINED_SOLARIS_PACKAGE
+	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_32)/additions
+	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_32)/components
+#	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(MKDIR) -p $(SOLARIS_INST_DIR_32)/$(VBOX_SOL_PYTHON_INST),)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_32)/nls,)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_32)/accessible,)
+#	$(QUIET)$(if $(VBOX_WITH_VRDP_RDESKTOP),$(MKDIR) -p $(SOLARIS_INST_DIR_32)/rdesktop-vrdp-keymaps,)
+	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_64)/additions
+	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_64)/components
+#	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(MKDIR) -p $(SOLARIS_INST_DIR_64)/$(VBOX_SOL_PYTHON_INST),)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_64)/nls,)
+	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_64)/accessible,)
+#	$(QUIET)$(if $(VBOX_WITH_VRDP_RDESKTOP),$(MKDIR) -p $(SOLARIS_INST_DIR_64)/rdesktop-vrdp-keymaps,)
+else
+#	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/additions
+#	$(QUIET)$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/components
+#	$(QUIET)$(if $(VBOX_WITH_PYTHON),$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/$(VBOX_SOL_PYTHON_INST),)
+#	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/nls,)
+#	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/accessible,)
+#	$(QUIET)$(if $(VBOX_WITH_VRDP_RDESKTOP),$(MKDIR) -p $(SOLARIS_INST_DIR_ISA)/rdesktop-vrdp-keymaps,)
+endif
+#	$(QUIET)$(MKDIR) -p $(SOLARIS_VBI_DIR)/amd64
+#	@# -XXX- This must be fixed badly, we create directories needed for debug package here!
+#	$(QUIET)$(MKDIR) -p $(SOLARIS_DBG_DIR)/additions
+#	$(QUIET)$(MKDIR) -p $(SOLARIS_DBG_DIR)/components
+#	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_DBG_DIR)/accessible,)
+	@# Install VBI files
 	$(QUIET)$(MKDIR) -p $(SOLARIS_VBI_DIR)/amd64
-	@# -XXX- This must be fixed badly, we create directories needed for debug package here!
-	$(QUIET)$(MKDIR) -p $(SOLARIS_DBG_DIR)/additions
-	$(QUIET)$(MKDIR) -p $(SOLARIS_DBG_DIR)/components
-	$(QUIET)$(if $(VBOX_WITH_QT4GUI),$(MKDIR) -p $(SOLARIS_DBG_DIR)/accessible,)
-	@# Install VBI files
 	$(QUIET)$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/Runtime/r0drv/solaris/vbi/32/vbi                       $(SOLARIS_VBI_DIR)/vbi
 	$(QUIET)$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/Runtime/r0drv/solaris/vbi/64/vbi                       $(SOLARIS_VBI_DIR)/amd64/vbi
@@ -424,2 +565,3 @@
 	$(QUIET)$(SOL_DBG_OBJCOPY) $< $@
 
+
Index: /trunk/src/VBox/Installer/solaris/VBox.sh
===================================================================
--- /trunk/src/VBox/Installer/solaris/VBox.sh	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/VBox.sh	(revision 15912)
@@ -1,5 +1,5 @@
 #!/bin/sh
 # Sun xVM VirtualBox
-# VirtualBox startup script for Solaris
+# VirtualBox startup script, Solaris hosts.
 #
 # Copyright (C) 2007-2008 Sun Microsystems, Inc.
@@ -18,5 +18,10 @@
 #
 
-INSTALL_DIR="/opt/VirtualBox"
+CURRENT_ISA=`isainfo -k`
+if test "$CURRENT_ISA" = "amd64"; then
+    INSTALL_DIR="/opt/VirtualBox/amd64"
+else
+    INSTALL_DIR="/opt/VirtualBox/i386"
+fi
 APP=`which $0`
 APP=`basename $APP`
@@ -39,5 +44,8 @@
   VBoxQtconfig)
     exec "$INSTALL_DIR/VBoxQtconfig" "$@"
-    ;;
+  ;;
+  VBoxBFE)
+    exec "$INSTALL_DIR/VBoxBFE" "$@"
+  ;;
   *)
     echo "Unknown application - $APP"
Index: /trunk/src/VBox/Installer/solaris/VBoxISAExec.c
===================================================================
--- /trunk/src/VBox/Installer/solaris/VBoxISAExec.c	(revision 15912)
+++ /trunk/src/VBox/Installer/solaris/VBoxISAExec.c	(revision 15912)
@@ -0,0 +1,46 @@
+/* $Id$ */
+/** @file
+ * VBoxISAExec, ISA exec wrapper, Solaris hosts.
+ */
+
+/*
+ * Copyright (C) 2006-2007 Sun Microsystems, Inc.
+ *
+ * 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.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[], char *envv[])
+{
+    int rc = 0;
+    const char *pszExec = getexecname();
+
+    if (!pszExec)
+    {
+        fprintf(stderr, "Failed to get executable name.\n");
+        return -1;
+    }
+
+    rc = isaexec(pszExec, argv, envv);
+    if (rc == -1)
+        fprintf(stderr, "Failed to find/execute ISA specific executable for %s\n", pszExec);
+
+    return rc;
+}
+
Index: /trunk/src/VBox/Installer/solaris/makepackage.sh
===================================================================
--- /trunk/src/VBox/Installer/solaris/makepackage.sh	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/makepackage.sh	(revision 15912)
@@ -2,5 +2,5 @@
 ## @file
 # Sun xVM VirtualBox
-# VirtualBox Solaris package creation script.
+# VirtualBox package creation script, Solaris hosts.
 #
 
@@ -23,5 +23,5 @@
 #
 # Usage:
-#       makespackage.sh [--hardened] $(PATH_TARGET)/install packagename $(KBUILD_TARGET_ARCH) $(VBOX_SVN_REV) [VBIPackageName]
+#       makespackage.sh [--hardened] $(PATH_TARGET)/install packagename {$(KBUILD_TARGET_ARCH)|neutral} $(VBOX_SVN_REV) [VBIPackageName]
 
 
@@ -50,4 +50,5 @@
 VBOX_PKGFILE=$2.pkg
 VBOX_ARCHIVE=$2.tar.gz
+# VBOX_PKG_ARCH is currently unused.
 VBOX_PKG_ARCH=$3
 VBOX_SVN_REV=$4
@@ -96,20 +97,12 @@
 filelist_fixup prototype '$2 == "none"'                                                                 '$3 = "opt/VirtualBox/"$3"="$3'
 
-# install the kernel module to the right place.
-if test "$VBOX_PKG_ARCH" = "x86"; then
-    filelist_fixup prototype '$3 == "opt/VirtualBox/vboxdrv=vboxdrv"'                                   '$3 = "platform/i86pc/kernel/drv/vboxdrv=vboxdrv"; $6 = "sys"'
-else
-    filelist_fixup prototype '$3 == "opt/VirtualBox/vboxdrv=vboxdrv"'                                   '$3 = "platform/i86pc/kernel/drv/amd64/vboxdrv=vboxdrv"; $6 = "sys"'
-fi
+# install the kernel modules to the right place.
+filelist_fixup prototype '$3 == "opt/VirtualBox/i386/vboxdrv=i386/vboxdrv"'                             '$3 = "platform/i86pc/kernel/drv/vboxdrv=i386/vboxdrv"; $6 = "sys"'
+filelist_fixup prototype '$3 == "opt/VirtualBox/amd64/vboxdrv=amd64/vboxdrv"'                           '$3 = "platform/i86pc/kernel/drv/amd64/vboxdrv=amd64/vboxdrv"; $6 = "sys"'
 
-# install vboxflt to the right place.
-if test "$VBOX_PKG_ARCH" = "x86"; then
-    filelist_fixup prototype '$3 == "opt/VirtualBox/vboxflt=vboxflt"'                                   '$3 = "platform/i86pc/kernel/drv/vboxflt=vboxflt"; $6 = "sys"'
-else
-    filelist_fixup prototype '$3 == "opt/VirtualBox/vboxflt=vboxflt"'                                   '$3 = "platform/i86pc/kernel/drv/amd64/vboxflt=vboxflt"; $6 = "sys"'
-fi
+filelist_fixup prototype '$3 == "opt/VirtualBox/i386/vboxflt=i386/vboxflt"'                             '$3 = "platform/i86pc/kernel/drv/vboxflt=i386/vboxflt"; $6 = "sys"'
+filelist_fixup prototype '$3 == "opt/VirtualBox/amd64/vboxflt=amd64/vboxflt"'                           '$3 = "platform/i86pc/kernel/drv/amd64/vboxflt=amd64/vboxflt"; $6 = "sys"'
 
 filelist_fixup prototype '$3 == "opt/VirtualBox/vboxdrv.conf=vboxdrv.conf"'                             '$3 = "platform/i86pc/kernel/drv/vboxdrv.conf=vboxdrv.conf"'
-
 filelist_fixup prototype '$3 == "opt/VirtualBox/vboxflt.conf=vboxflt.conf"'                             '$3 = "platform/i86pc/kernel/drv/vboxflt.conf=vboxflt.conf"'
 
@@ -117,9 +110,14 @@
 if test -n "$HARDENED"; then
     $VBOX_AWK 'NF == 6 \
-        && (    $3 == "opt/VirtualBox/VirtualBox=VirtualBox" \
-            ||  $3 == "opt/VirtualBox/VirtualBox3=VirtualBox3" \
-            ||  $3 == "opt/VirtualBox/VBoxHeadless=VBoxHeadless" \
-            ||  $3 == "opt/VirtualBox/VBoxSDL=VBoxSDL" \
-            ||  $3 == "opt/VirtualBox/VBoxBFE=VBoxBFE" \
+        && (    $3 == "opt/VirtualBox/amd64/VirtualBox=amd64/VirtualBox" \
+            ||  $3 == "opt/VirtualBox/amd64/VirtualBox3=amd64/VirtualBox3" \
+            ||  $3 == "opt/VirtualBox/amd64/VBoxHeadless=amd64/VBoxHeadless" \
+            ||  $3 == "opt/VirtualBox/amd64/VBoxSDL=amd64/VBoxSDL" \
+            ||  $3 == "opt/VirtualBox/amd64/VBoxBFE=amd64/VBoxBFE" \
+            ||  $3 == "opt/VirtualBox/i386/VirtualBox=i386/VirtualBox" \
+            ||  $3 == "opt/VirtualBox/i386/VirtualBox3=i386/VirtualBox3" \
+            ||  $3 == "opt/VirtualBox/i386/VBoxHeadless=i386/VBoxHeadless" \
+            ||  $3 == "opt/VirtualBox/i386/VBoxSDL=i386/VBoxSDL" \
+            ||  $3 == "opt/VirtualBox/i386/VBoxBFE=i386/VBoxBFE" \
             ) \
        { $4 = "4755" } { print }' prototype > prototype2
Index: /trunk/src/VBox/Installer/solaris/postinstall.sh
===================================================================
--- /trunk/src/VBox/Installer/solaris/postinstall.sh	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/postinstall.sh	(revision 15912)
@@ -53,18 +53,45 @@
 fi
 
-# create links
+# create symlinks and hardlinks
+VBOXBASEDIR="/opt/VirtualBox"
+SYSISAEXEC="/usr/lib/isaexec"
 echo "Creating links..."
-if test -f /opt/VirtualBox/VirtualBox; then
-    /usr/sbin/installf -c none $PKGINST /usr/bin/VirtualBox=/opt/VirtualBox/VBox.sh s
-    # Qt links
-    /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxQtconfig=/opt/VirtualBox/VBox.sh s
+if test -f "$VBOXBASEDIR/amd64/VirtualBox" || test -f "$VBOXBASEDIR/i386/VirtualBox"; then
+    /usr/sbin/installf -c none $PKGINST /usr/bin/VirtualBox=$VBOXBASEDIR/VBox.sh s
+    /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxQtconfig=$VBOXBASEDIR/VBox.sh s
+    /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VirtualBox f
+    /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxQtconfig f
+    ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VirtualBox
+    ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxQtconfig
 fi
-/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxManage=/opt/VirtualBox/VBox.sh s
-/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxSDL=/opt/VirtualBox/VBox.sh s
-if test -f /opt/VirtualBox/VBoxHeadless; then
-    /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxHeadless=/opt/VirtualBox/VBox.sh s
-    if test -f /opt/VirtualBox/VBoxVRDP.so; then
-        /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxVRDP=/opt/VirtualBox/VBox.sh s
+/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxManage=$VBOXBASEDIR/VBox.sh s
+/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxSDL=$VBOXBASEDIR/VBox.sh s
+/usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxManage f
+/usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxSDL f
+/usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/vboxwebsrv f
+/usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/webtest f
+/usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxZoneAccess f
+ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxManage
+ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxSDL
+ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/vboxwebsrv
+ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/webtest
+ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxZoneAccess
+if test -f "$VBOXBASEDIR/amd64/VBoxBFE" || test -f "$VBOXBASEDIR/i386/VBoxBFE"; then
+    /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxBFE f
+    ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxBFE
+fi
+if test -f "$VBOXBASEDIR/amd64/VBoxHeadless" || test -f "$VBOXBASEDIR/i386/VBoxHeadless"; then
+    if test -d $VBOXBASEDIR/amd64; then
+        /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/amd64/rdesktop-vrdp-keymaps=$VBOXBASEDIR/rdesktop-vrdp-keymaps s
     fi
+    if test -d $VBOXBASEDIR/i386; then
+        /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/i386/rdesktop-vrdp-keymaps=$VBOXBASEDIR/rdesktop-vrdp-keymaps s
+    fi    
+    /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxHeadless=/$VBOXBASEDIR/VBox.sh s
+    /usr/sbin/installf -c none $PKGINST /usr/bin/VBoxVRDP=$VBOXBASEDIR/VBox.sh s
+    /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxHeadless f
+    /usr/sbin/installf -c none $PKGINST $VBOXBASEDIR/VBoxVRDP f
+    ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxHeadless
+    ln -f $VBOXBASEDIR/VBoxISAExec $VBOXBASEDIR/VBoxVRDP
 fi
 
Index: /trunk/src/VBox/Installer/solaris/vboxdrv.sh
===================================================================
--- /trunk/src/VBox/Installer/solaris/vboxdrv.sh	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/vboxdrv.sh	(revision 15912)
@@ -1,5 +1,5 @@
 #!/bin/sh
 # Sun xVM VirtualBox
-# VirtualBox kernel module control script for Solaris.
+# VirtualBox kernel module control script, Solaris hosts.
 #
 # Copyright (C) 2007-2008 Sun Microsystems, Inc.
@@ -22,5 +22,4 @@
 ALWAYSREMDRV=""
 
-
 MODNAME="vboxdrv"
 VBIMODNAME="vbi"
@@ -42,5 +41,5 @@
 warn()
 {
-    echo 1>&2 "WARNING!! $!"
+    echo 1>&2 "WARNING!! $1"
 }
 
Index: /trunk/src/VBox/Installer/solaris/virtualbox-zoneaccess.xml
===================================================================
--- /trunk/src/VBox/Installer/solaris/virtualbox-zoneaccess.xml	(revision 15911)
+++ /trunk/src/VBox/Installer/solaris/virtualbox-zoneaccess.xml	(revision 15912)
@@ -2,5 +2,5 @@
 <!--
 # Sun xVM VirtualBox
-# Solaris SMF service manifest for Solaris 10 Zone Access.
+# Solaris SMF service manifest for Solaris Zone Access.
 #
      Copyright (C) 2008 Sun Microsystems, Inc.
