diff -Nru irssi-0.8.12.orig/src/irc/proxy/listen.c irssi-0.8.12/src/irc/proxy/listen.c --- irssi-0.8.12.orig/src/irc/proxy/listen.c 2008-07-28 18:32:03.000000000 +0100 +++ irssi-0.8.12/src/irc/proxy/listen.c 2008-07-28 19:15:33.000000000 +0100 @@ -479,11 +497,10 @@ client->proxy_address, client->nick, server->connrec->address); + int part_on_disconnect = settings_get_bool("irssiproxy_part_on_disconnect"); for (tmp = server->channels; tmp != NULL; tmp = tmp->next) { IRC_CHANNEL_REC *rec = tmp->data; - - proxy_outserver(client, "PART %s :Connection lost to server", - rec->name); + proxy_outserver(client, "%s %s :Connection lost to server", part_on_disconnect ? "PART" : "NOTICE", rec->name); } } diff -Nru irssi-0.8.12.orig/src/irc/proxy/proxy.c irssi-0.8.12/src/irc/proxy/proxy.c --- irssi-0.8.12.orig/src/irc/proxy/proxy.c 2008-07-28 18:32:03.000000000 +0100 +++ irssi-0.8.12/src/irc/proxy/proxy.c 2008-07-28 19:15:33.000000000 +0100 @@ -25,6 +25,7 @@ void irc_proxy_init(void) { + settings_add_bool("irssiproxy", "irssiproxy_part_on_disconnect", TRUE); settings_add_str("irssiproxy", "irssiproxy_ports", ""); settings_add_str("irssiproxy", "irssiproxy_password", ""); settings_add_str("irssiproxy", "irssiproxy_bind", "");