--- a/libpurple/protocols/msn/switchboard.c Sat Aug 13 21:57:35 2011 +0000 +++ b/libpurple/protocols/msn/switchboard.c Sun Aug 14 19:04:59 2011 +0000 @@ -421,9 +421,10 @@ purple_debug_info("msn", "unqueuing unsent message to %s\n", swboard->im_user); - msn_switchboard_request(swboard); - msn_switchboard_request_add_user(swboard, swboard->im_user); - swboard->reconn_timeout_h = 0; + if (msn_switchboard_request(swboard)) { + msn_switchboard_request_add_user(swboard, swboard->im_user); + swboard->reconn_timeout_h = 0; + } return FALSE; } @@ -1078,7 +1079,7 @@ swboard_error_helper(swboard, reason, swboard->im_user); } -void +gboolean msn_switchboard_request(MsnSwitchBoard *swboard) { MsnCmdProc *cmdproc; @@ -1094,7 +1095,7 @@ msn_transaction_set_data(trans, swboard); msn_transaction_set_error_cb(trans, xfr_error); - msn_cmdproc_send_trans(cmdproc, trans); + return msn_cmdproc_send_trans(cmdproc, trans); } void