Index: /trunk/src/VBox/Installer/darwin/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Installer/darwin/Makefile.kmk	(revision 42378)
+++ /trunk/src/VBox/Installer/darwin/Makefile.kmk	(revision 42379)
@@ -634,5 +634,6 @@
 	MacOS/VBoxNetDHCP \
 	MacOS/VBoxExtPackHelperApp \
-	MacOS/VBoxBalloonCtrl
+	MacOS/VBoxBalloonCtrl \
+	MacOS/VBoxAutostart
 ifdef VBOX_WITH_WEBSERVICES
  VBOX_DI_VBAPP_PROGS += \
@@ -757,4 +758,6 @@
 		$(if $(VBOX_WITH_WEBSERVICES),$(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxwebsrv.plist,) \
 		$(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxballoonctrl.plist \
+		$(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxautostart.plist \
+		$(VBOX_PATH_DI_SRC)/VirtualBox/VBoxAutostartDarwin.sh \
 		$(VBOX_DARWIN_INST_DEP_ON_MAKEFILE)
 	$(call MSG_TOOL,PackageMaker,,,$@)
@@ -812,4 +815,6 @@
 endif
 	$(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxballoonctrl.plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/
+	$(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/org.virtualbox.vboxautostart.plist $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/
+	$(INSTALL) -m 0644 $(VBOX_PATH_DI_SRC)/VirtualBox/VBoxAutostartDarwin.sh $(VBOX_PATH_PACK_TMP)/VirtualBox.pkg.root/Applications/VirtualBox.app/Contents/MacOS/
 	@# Install the python stuff
 ifdef VBOX_WITH_PYTHON
@@ -1033,4 +1038,6 @@
 	$(APPEND) $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/VBoxBalloonCtrl '#!/bin/bash'
 	$(APPEND) $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/VBoxBalloonCtrl 'exec /Applications/VirtualBox.app/Contents/MacOS/VBoxBalloonCtrl "$$@"'
+	$(APPEND) $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/VBoxAutostart '#!/bin/bash'
+	$(APPEND) $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/VBoxAutostart 'exec /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostart "$$@"'
 	@# Set the correct owners and file permissions.
 	sudo chmod 0755 $(VBOX_PATH_PACK_TMP)/VirtualBoxCLI.pkg.root/usr/bin/*
Index: /trunk/src/VBox/Installer/darwin/VirtualBox/VBoxAutostartDarwin.sh
===================================================================
--- /trunk/src/VBox/Installer/darwin/VirtualBox/VBoxAutostartDarwin.sh	(revision 42379)
+++ /trunk/src/VBox/Installer/darwin/VirtualBox/VBoxAutostartDarwin.sh	(revision 42379)
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+#
+# Copyright (C) 2012 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.
+#
+
+#
+# Wrapper for the per user autostart daemon. Gets a list of all users
+# and starts the VMs.
+#
+
+function vboxStartAllUserVms()
+{
+    # Go through the list and filter out all users without a shell and a
+    # non existing home.
+    for user in `dscl . -list /Users`
+    do
+        HOMEDIR=`dscl . -read /Users/${user} | grep NFSHomeDirectory | sed 's/NFSHomeDirectory: //g'`
+        USERSHELL=`dscl . -read /Users/${user} | grep UserShell | sed 's/UserShell: //g'`
+
+        # Check for known home directories and shells for daemons
+        if [[   "${HOMEDIR}" == "/var/empty" || "${HOMEDIR}" == "/dev/null"
+             || "${USERSHELL}" == "/usr/bin/false" || "${USERSHELL}" == "/dev/null" || "${USERSHELL}" == "/usr/sbin/uucico" ]]
+        then
+            continue
+        fi
+
+        # Start the daemon
+        su ${user} -c '/Applications/VirtualBox.app/Contents/MacOS/VBoxAutostart --start --background --config /etc/vbox/autostart.cfg'
+
+    done
+}
+
+case $1 in
+    --start) vboxStartAllUserVms;;
+          *) echo "Unknown option ${1}";;
+esac
+
Index: /trunk/src/VBox/Installer/darwin/VirtualBox/org.virtualbox.vboxautostart.plist
===================================================================
--- /trunk/src/VBox/Installer/darwin/VirtualBox/org.virtualbox.vboxautostart.plist	(revision 42379)
+++ /trunk/src/VBox/Installer/darwin/VirtualBox/org.virtualbox.vboxautostart.plist	(revision 42379)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>Disabled</key>
+  <true/>
+  <key>KeepAlive</key>
+  <false/>
+  <key>Label</key>
+  <string>org.virtualbox.vboxautostart</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/Applications/VirtualBox.app/Contents/MacOS/VBoxAutostartDarwin.sh</string>
+    <string>--start</string>
+  </array>
+</dict>
+</plist>
