If you exec seahorse-agent from another process which has decided to ignore the SIGCHLD signal, glib produces the following warning to stderr: (seahorse-agent:2171): GLib-WARNING **: In call to g_spawn_sync(), exit status of a child process was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit status can't be returned. This is a bug in the program calling g_spawn_sync(); either don't request the exit status, or don't set the SIGCHLD action. Presumably this means that seahorse-agent requires the default SIGCHLD handler, but does not explicitly ask the system for it. Early in its execution, seahorse-agent should detect if the action for SIGCHLD is currently set to SIG_IGN, and reset it to SIG_DFL in that case.