diff -r 30107eb2ff81 -r c1da9082287f pidgin/gtkmain.c --- a/pidgin/gtkmain.c Tue Aug 13 12:14:16 2013 +0200 +++ b/pidgin/gtkmain.c Wed Aug 14 11:22:50 2013 +0200 @@ -88,6 +88,7 @@ SIGINT, SIGTERM, SIGQUIT, + SIGCHLD, -1 }; @@ -182,8 +183,15 @@ return FALSE; } - purple_debug_warning("sighandler", "Caught signal %d\n", sig); - purple_core_quit(); + switch (sig) { + case SIGCHLD: + /* Restore signal catching */ + signal(SIGCHLD, sighandler); + break; + default: + purple_debug_warning("sighandler", "Caught signal %d\n", sig); + purple_core_quit(); + } return TRUE; }