--- a/libpurple/protocols/mxit/markup.c Sun Mar 03 20:01:23 2013 -0800 +++ b/libpurple/protocols/mxit/markup.c Wed Mar 06 10:34:45 2013 -0500 @@ -490,6 +490,9 @@ purple_debug_info( MXIT_PLUGIN_ID, "emoticon_returned\n" ); #endif + /* remove request from the async outstanding calls list */ + mx->session->async_calls = g_slist_remove( mx->session->async_calls, url_data ); + if ( !url_text ) { /* no reply from the WAP site */ purple_debug_error( MXIT_PLUGIN_ID, "Error contacting the MXit WAP site. Please try again later (emoticon).\n" ); @@ -634,8 +637,10 @@ /* reference: "libpurple/util.h" */ url = g_strdup_printf( "%s/res/?type=emo&mlh=%i&sc=%s&ts=%li", wapserver, MXIT_EMOTICON_SIZE, id, time( NULL ) ); - /* FIXME: This should be cancelled somewhere if not needed. */ url_data = purple_util_fetch_url( url, TRUE, NULL, TRUE, -1, emoticon_returned, mx ); + if ( url_data ) + mx->session->async_calls = g_slist_prepend( mx->session->async_calls, url_data ); + g_free( url ); }