Index: /trunk/src/VBox/Additions/linux/installer/vboxadd.sh
===================================================================
--- /trunk/src/VBox/Additions/linux/installer/vboxadd.sh	(revision 57985)
+++ /trunk/src/VBox/Additions/linux/installer/vboxadd.sh	(revision 57986)
@@ -215,5 +215,7 @@
 
         $MODPROBE vboxguest >/dev/null 2>&1 || {
-            fail "modprobe vboxguest failed"
+            setup
+            $MODPROBE vboxguest >/dev/null 2>&1 ||
+                fail "modprobe vboxguest failed"
         }
         case "$no_udev" in 1)
Index: /trunk/src/VBox/Installer/linux/debian/postinst.in
===================================================================
--- /trunk/src/VBox/Installer/linux/debian/postinst.in	(revision 57985)
+++ /trunk/src/VBox/Installer/linux/debian/postinst.in	(revision 57986)
@@ -78,23 +78,22 @@
     fi
   fi
-
-  # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
-  if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
-    rm -f /lib/modules/*/misc/vboxdrv.ko
-    rm -f /lib/modules/*/misc/vboxnetflt.ko
-    rm -f /lib/modules/*/misc/vboxnetadp.ko
-  fi
-
 fi # $1 = "configure"
 
 #DEBHELPER#
 
-BUILD_MODULES=0
-REGISTER_MODULES=1
-# Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
-if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
-  REGISTER_MODULES=0
+if test "${INSTALL_NO_VBOXDRV}" = 1; then
+  POSTINST_START=
+  # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
   if [ "$1" = "configure" ]; then
-    if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
+    rm -f /lib/modules/*/misc/vboxdrv.ko
+    rm -f /lib/modules/*/misc/vboxnetflt.ko
+    rm -f /lib/modules/*/misc/vboxnetadp.ko
+    rm -f /lib/modules/*/misc/vboxpci.ko
+  fi
+else
+  POSTINST_START=--start
+  # Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
+  if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
+    if [ "$1" = "configure" ]; then
       db_get virtualbox/module-compilation-allowed
       if [ "$RET" = "false" ]; then
@@ -103,23 +102,18 @@
 though module compilation denied by debconf setting.
 EOF
+        POSTINST_START=
       else
         db_input low virtualbox/module-compilation-allowed || true
         db_go || true
         db_get virtualbox/module-compilation-allowed
-        if [ "$RET" = "true" ]; then
-          BUILD_MODULES=1
+        if [ "$RET" = "false" ]; then
+          POSTINST_START=
         fi
       fi
-    fi
-  fi # $1 = "configure"
-fi
-
-if [ $BUILD_MODULES -eq 1 ]; then
-  /usr/lib/virtualbox/vboxdrv.sh setup || true
+    fi # $1 = "configure"
+  fi
 fi
 
 # Install and start the new service scripts.
-POSTINST_START=--start
-test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
 /usr/lib/virtualbox/prerm-common.sh || true
 /usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
Index: /trunk/src/VBox/Installer/linux/install.sh
===================================================================
--- /trunk/src/VBox/Installer/linux/install.sh	(revision 57985)
+++ /trunk/src/VBox/Installer/linux/install.sh	(revision 57986)
@@ -285,5 +285,6 @@
     test -e $INSTALLATION_DIR/VBoxVolInfo && chmod 4511 $INSTALLATION_DIR/VBoxVolInfo
 
-    # Write the configuration. Do this before we call /sbin/rcvboxdrv setup!
+    # Write the configuration.  Needs to be done before the vboxdrv service is
+    # started.
     echo "# VirtualBox installation directory" > $CONFIG_DIR/$CONFIG
     echo "INSTALL_DIR='$INSTALLATION_DIR'" >> $CONFIG_DIR/$CONFIG
@@ -363,28 +364,11 @@
     install_device_node_setup "$VBOXDRV_GRP" "$VBOXDRV_MODE" "$INSTALLATION_DIR"
 
-    # Make kernel module
-    MODULE_FAILED="false"
-    if [ "$BUILD_MODULE" = "true" ]
-    then
-        info "Building the VirtualBox kernel modules"
-        log "Output from the module build process (the Linux kernel build system) follows:"
-        cur=`pwd`
-        log ""
-        # Start VirtualBox kernel module
-        if ! ./vboxdrv.sh setup || ! ./vboxdrv.sh start; then
-            info "Failed to load the kernel module."
-            MODULE_FAILED="true"
-            RC_SCRIPT=1
-        fi
-        log ""
-        log "End of the output from the Linux kernel build system."
-        cd $cur
-    fi
-
     # Do post-installation common to all installer types, currently service
     # script set-up.
-    START_SERVICES=
-    test "${BUILD_MODULE}" = "true" && test "${MODULE_FAILED}" = "false" &&
-        START_SERVICES="--start"
+    if test "${BUILD_MODULE}" = "true"; then
+      START_SERVICES="--start"
+    else
+      START_SERVICES=
+    fi
     ./postinst-common.sh "${INSTALLATION_DIR}" "${START_SERVICES}" >> "${LOG}"
 
Index: /trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
===================================================================
--- /trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec	(revision 57985)
+++ /trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec	(revision 57986)
@@ -290,9 +290,17 @@
 
 # Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
-BUILD_MODULES=0
-REGISTER_MODULES=1
-if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
-  REGISTER_MODULES=0
-  if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
+if test "${INSTALL_NO_VBOXDRV}" = 1; then
+  POSTINST_START=
+  if lsmod | grep -q "vboxdrv[^_-]"; then
+    /usr/lib/virtualbox/vboxdrv.sh stop || true
+  fi
+  # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
+  rm -f /lib/modules/*/misc/vboxdrv.ko
+  rm -f /lib/modules/*/misc/vboxnetflt.ko
+  rm -f /lib/modules/*/misc/vboxnetadp.ko
+  rm -f /lib/modules/*/misc/vboxpci.ko
+else
+  POSTINST_START=--start
+  if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
     # compile problem
     cat << EOF
@@ -301,24 +309,7 @@
 
 EOF
-    BUILD_MODULES=1
-  fi
-fi
-# if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
-if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
-  rm -f /lib/modules/*/misc/vboxdrv.ko
-  rm -f /lib/modules/*/misc/vboxnetflt.ko
-  rm -f /lib/modules/*/misc/vboxnetadp.ko
-  rm -f /lib/modules/*/misc/vboxpci.ko
-fi
-if [ $BUILD_MODULES -eq 1 ]; then
-  /usr/lib/virtualbox/vboxdrv.sh setup || true
-else
-  if lsmod | grep -q "vboxdrv[^_-]"; then
-    /usr/lib/virtualbox/vboxdrv.sh stop || true
   fi
 fi
 # Install and start the new service scripts.
-POSTINST_START=--start
-test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
 /usr/lib/virtualbox/prerm-common.sh || true
 /usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
Index: /trunk/src/VBox/Installer/linux/vboxdrv.sh.in
===================================================================
--- /trunk/src/VBox/Installer/linux/vboxdrv.sh.in	(revision 57985)
+++ /trunk/src/VBox/Installer/linux/vboxdrv.sh.in	(revision 57986)
@@ -104,5 +104,8 @@
         fi
         if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
-            failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
+            setup
+            if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
+                failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
+            fi
         fi
         sleep .2
@@ -234,5 +237,5 @@
 {
     begin_msg "Building VirtualBox kernel modules" console
-    stop
+    stop >/dev/null
     if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then
         begin_msg "Removing old VirtualBox pci kernel module"
@@ -282,5 +285,4 @@
     rm -f /etc/vbox/module_not_compiled
     succ_msg
-    start
 }
 
@@ -335,12 +337,9 @@
     start
     ;;
-setup)
-    setup
-    ;;
 status)
     dmnstatus
     ;;
 *)
-    echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status|setup}"
+    echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status}"
     exit 1
 esac
