--- dbus/dbus-sysdeps-util-unix.c.orig 2007-07-24 11:39:09.000000000 -0400 +++ dbus/dbus-sysdeps-util-unix.c 2008-01-10 17:20:38.000000000 -0500 @@ -162,7 +162,9 @@ _dbus_become_daemon (const DBusString *p } bytes = _dbus_string_get_length (&pid); - if (_dbus_pipe_write (print_pid_pipe, &pid, 0, bytes, error) != bytes) + signal (SIGPIPE, SIG_IGN); + if (_dbus_pipe_write (print_pid_pipe, &pid, 0, bytes, error) != bytes && + errno != EPIPE) { /* _dbus_pipe_write sets error only on failure, not short write */ if (error != NULL && !dbus_error_is_set(error)) @@ -172,8 +174,10 @@ _dbus_become_daemon (const DBusString *p } _dbus_string_free (&pid); kill (child_pid, SIGTERM); + signal (SIGPIPE, SIG_DFL); return FALSE; } + signal (SIGPIPE, SIG_DFL); _dbus_string_free (&pid); }