Index: cjs/test/run-with-dbus
===================================================================
--- cjs.orig/test/run-with-dbus	2014-07-16 21:02:53.360319307 +0200
+++ cjs/test/run-with-dbus	2014-07-16 21:06:52.890858421 +0200
@@ -116,13 +116,12 @@
 
     echo "Running dbus-launch --config-file=$CONFIG_FILE" >&2
 
-    eval `dbus-launch --exit-with-session --sh-syntax --config-file=$CONFIG_FILE 2>"$STDERR_LOGFILE"`
-
-    if test -z "$DBUS_SESSION_BUS_PID" ; then
-        die "Failed to launch message bus for test script to run"
+    # The new dbus-launch exits if stdin is not a tty. :/
+    # eval `dbus-launch --exit-with-session --sh-syntax --config-file=$CONFIG_FILE 2>"$STDERR_LOGFILE" < /dev/tty`
+    if ! test -z "$START_SYSTEM_BUS" ; then
+        ARGS="--system"
     fi
-
-    echo "Started bus pid $DBUS_SESSION_BUS_PID at $DBUS_SESSION_BUS_ADDRESS" >&2
+    exec dbus-run-session --config-file=$CONFIG_FILE -- "$SCRIPTNAME" $ARGS "$WRAPPED_SCRIPT" "$@" 2>"$STDERR_LOGFILE"
 fi
 
 if ! test -z "$START_SYSTEM_BUS" ; then
@@ -162,21 +161,12 @@
 echo "Running with dbus: $WRAPPED_SCRIPT $@ with stderr to $STDERR_LOGFILE" >&2
 $WRAPPED_SCRIPT "$@" 2>>"$STDERR_LOGFILE" || die "script \"$WRAPPED_SCRIPT\" failed"
 
-if ! test -z "$DBUS_SESSION_BUS_PID" ; then
-    kill -TERM $DBUS_SESSION_BUS_PID || die "Message bus vanished! should not have happened" && echo "Killed daemon $DBUS_SESSION_BUS_PID" >&2
-fi
-
 if ! test -z "$DBUS_SYSTEM_BUS_PID" ; then
     kill -TERM $DBUS_SYSTEM_BUS_PID || die "Message bus vanished! should not have happened" && echo "Killed daemon $DBUS_SYSTEM_BUS_PID" >&2
 fi
 
 sleep 2
 
-## be sure it really died
-if ! test -z "$DBUS_SESSION_BUS_PID" ; then
-    kill -9 $DBUS_SESSION_BUS_PID > /dev/null 2>&1 || true
-fi
-
 if ! test -z "$DBUS_SYSTEM_BUS_PID" ; then
     kill -9 $DBUS_SYSTEM_BUS_PID > /dev/null 2>&1 || true
 fi
