diff -Nurd -x'*~' dbus-1.8.20.orig/bus/Makefile.in dbus-1.8.20/bus/Makefile.in
--- dbus-1.8.20.orig/bus/Makefile.in	2015-07-21 12:32:30.000000000 -0400
+++ dbus-1.8.20/bus/Makefile.in	2015-07-24 17:14:50.000000000 -0400
@@ -1538,12 +1538,13 @@
 @HAVE_SYSTEMD_TRUE@	ln -fs ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service
 
 @DBUS_UNIX_TRUE@install-exec-hook:
-@DBUS_UNIX_TRUE@	if test `id -u` -eq 0; then \
+@DBUS_UNIX_TRUE@	if false; then \
 @DBUS_UNIX_TRUE@		chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
 @DBUS_UNIX_TRUE@		chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
 @DBUS_UNIX_TRUE@	else \
 @DBUS_UNIX_TRUE@		echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \
 @DBUS_UNIX_TRUE@		echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \
+@DBUS_UNIX_TRUE@		echo "The PostInst of this fink package will do it automatically"; \
 @DBUS_UNIX_TRUE@	fi
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -Nurd -x'*~' dbus-1.8.20.orig/bus/system.conf.in dbus-1.8.20/bus/system.conf.in
--- dbus-1.8.20.orig/bus/system.conf.in	2015-05-14 08:23:25.000000000 -0400
+++ dbus-1.8.20/bus/system.conf.in	2015-07-24 17:14:50.000000000 -0400
@@ -26,9 +26,6 @@
   <!-- This is a setuid helper that is used to launch system services -->
   <servicehelper>@DBUS_LIBEXECDIR@/dbus-daemon-launch-helper</servicehelper>
 
-  <!-- Write a pid file -->
-  <pidfile>@DBUS_SYSTEM_PID_FILE@</pidfile>
-
   <!-- Enable logging to syslog -->
   <syslog/>
 
diff -Nurd -x'*~' dbus-1.8.20.orig/dbus/dbus-internals.c dbus-1.8.20/dbus/dbus-internals.c
--- dbus-1.8.20.orig/dbus/dbus-internals.c	2015-05-14 08:23:25.000000000 -0400
+++ dbus-1.8.20/dbus/dbus-internals.c	2015-07-24 17:14:50.000000000 -0400
@@ -185,7 +185,7 @@
 
 static dbus_bool_t warn_initted = FALSE;
 static dbus_bool_t fatal_warnings = FALSE;
-static dbus_bool_t fatal_warnings_on_check_failed = TRUE;
+static dbus_bool_t fatal_warnings_on_check_failed = FALSE;
 
 static void
 init_warnings(void)
diff -Nurd -x'*~' dbus-1.8.20.orig/dbus/dbus-sysdeps-unix.c dbus-1.8.20/dbus/dbus-sysdeps-unix.c
--- dbus-1.8.20.orig/dbus/dbus-sysdeps-unix.c	2015-05-14 08:23:25.000000000 -0400
+++ dbus-1.8.20/dbus/dbus-sysdeps-unix.c	2015-07-24 17:14:50.000000000 -0400
@@ -3385,7 +3385,7 @@
       close (result_pipe[READ_END]);
       close (errors_pipe[READ_END]);
 
-      if (dup2 (fd, 0) == -1) /* setup stdin */
+      if (fd != 0 && dup2 (fd, 0) == -1) /* setup stdin */
         _exit (1);
       if (dup2 (result_pipe[WRITE_END], 1) == -1) /* setup stdout */
         _exit (1);
diff -Nurd -x'*~' dbus-1.8.20.orig/dbus-xinitrc.sh dbus-1.8.20/dbus-xinitrc.sh
--- dbus-1.8.20.orig/dbus-xinitrc.sh	1969-12-31 19:00:00.000000000 -0500
+++ dbus-1.8.20/dbus-xinitrc.sh	2015-07-24 17:14:50.000000000 -0400
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ -n "$DISPLAY" ]; then
+	LDISPLAY=`TMPDIR=/tmp launchctl getenv DISPLAY`
+	if [ -z "$LDISPLAY" ]; then
+		TMPDIR=/tmp launchctl setenv DISPLAY "$DISPLAY"
+	fi
+fi
diff -Nurd -x'*~' dbus-1.8.20.orig/start-session-bus.sh dbus-1.8.20/start-session-bus.sh
--- dbus-1.8.20.orig/start-session-bus.sh	1969-12-31 19:00:00.000000000 -0500
+++ dbus-1.8.20/start-session-bus.sh	2015-07-24 17:14:50.000000000 -0400
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+
+if [ `TMPDIR=/tmp launchctl list 2>/dev/null | grep -c org.finkproject.dbus-session` -eq 0 ]; then
+      TMPDIR=/tmp launchctl load "@FINKPREFIX@/share/dbus/launchd/org.finkproject.dbus-session.plist"
+fi
+
+exit 0
diff -Nurd -x'*~' dbus-1.8.20.orig/start-system-bus.sh dbus-1.8.20/start-system-bus.sh
--- dbus-1.8.20.orig/start-system-bus.sh	1969-12-31 19:00:00.000000000 -0500
+++ dbus-1.8.20/start-system-bus.sh	2015-07-24 17:14:50.000000000 -0400
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+if [ -f "@FINKPREFIX@/etc/dbus-1/disable-dbus" ]; then
+      exit 0
+fi
+
+if [ -f "@FINKPREFIX@/var/run/dbus/pid" ]; then
+      PID=`cat "@FINKPREFIX@/var/run/dbus/pid"`
+      if [ `/bin/ps -p "${PID}" 2>/dev/null | grep -c "^ *${PID} "` -eq 0 ]; then
+              rm -f "@FINKPREFIX@/var/run/dbus/pid"
+              exec "@FINKPREFIX@/bin/dbus-daemon" --system
+      fi
+else
+      exec "@FINKPREFIX@/bin/dbus-daemon" --system
+fi
+
+exit 0
diff -Nurd -x'*~' dbus-1.8.20.orig/test/name-test/run-test.sh dbus-1.8.20/test/name-test/run-test.sh
--- dbus-1.8.20.orig/test/name-test/run-test.sh	2015-05-14 08:23:04.000000000 -0400
+++ dbus-1.8.20/test/name-test/run-test.sh	2015-07-24 17:14:50.000000000 -0400
@@ -62,4 +62,8 @@
 fi
 
 echo "running test-autolaunch"
-${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-autolaunch || die "test-autolaunch failed"
+if which dbus-launch 2>/dev/null; then
+    ${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-autolaunch || die "test-autolaunch failed"
+else
+    echo "Skipping test-autolaunch, no dbus-launch in $PATH"
+fi
