diff -r c73aa762b3e5 -r 10eb918682fc pidgin/gtkmain.c --- a/pidgin/gtkmain.c Tue Aug 13 20:49:55 2013 +0530 +++ b/pidgin/gtkmain.c Thu Aug 15 03:33:44 2013 +0530 @@ -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; }