diff -r 03789b130c36 -r 4534c27446e8 libpurple/protocols/gg/tcpsocket.c --- a/libpurple/protocols/gg/tcpsocket.c Mon Sep 16 14:05:48 2013 +0200 +++ b/libpurple/protocols/gg/tcpsocket.c Tue Sep 17 11:19:26 2013 +0200 @@ -20,13 +20,15 @@ if (!gg_socket_manager_connected(ps, priv_gg, fd)) { purple_debug_error("gg", "socket not handled"); purple_socket_destroy(ps); - return; } if (info->inpa > 0) purple_input_remove(info->inpa); - info->inpa = purple_input_add(fd, ggp_tcpsocket_inputcond_gg_to_purple( - info->session->check), ggp_async_login_handler, gc); + if (info->session->fd < 0) + return; + info->inpa = purple_input_add(info->session->fd, + ggp_tcpsocket_inputcond_gg_to_purple(info->session->check), + ggp_async_login_handler, gc); } static void*