diff -r d58f60b93f22 -r aad370ca8e4d pidgin/gtkmain.c --- a/pidgin/gtkmain.c Mon Nov 12 07:57:31 2007 +0000 +++ b/pidgin/gtkmain.c Mon Nov 12 08:10:24 2007 +0000 @@ -195,6 +195,18 @@ char *segfault_message; +/* + * This signal handler shouldn't be touching this much stuff. + * It should just set a flag and return, and something else in + * Pidgin should monitor the flag to see if something needs to + * be done. Because the signal handler interrupts the program, + * it could be called in the middle of adding a new connection + * to the list of connections, and then if we try to disconnect + * all connections it could lead to a crash because the linked + * list of connections could be in a weird state. But, well, + * this signal handler probably isn't called very often, so it's + * not a big deal. + */ static void sighandler(int sig) {