(rediffed to apply against pidgin-2.6.3) Revision: 3abad7606f4a2dfd1903df796f33924b12509a56 Ancestor: b4b3896d31eb6bef2433b251108f94dd5b04f06c Author: sadrul@pidgin.im Date: 2009-10-11T19:20:44 Branch: im.pidgin.pidgin Modified files: libpurple/protocols/msn/servconn.c ChangeLog: Swap two lines to fix a crash. msn_servconn_disconnect can destroy servconn, which makes it crash on the next line. So reset the idle-handler before going into that function. --- libpurple/protocols/msn/servconn.c.orig 2009-10-19 14:06:02.437920569 -0400 +++ libpurple/protocols/msn/servconn.c 2009-10-19 14:06:33.318661341 -0400 @@ -299,8 +299,8 @@ static gboolean servconn_idle_timeout_cb(MsnServConn *servconn) { - msn_servconn_disconnect(servconn); servconn->timeout_handle = 0; + msn_servconn_disconnect(servconn); return FALSE; }