--- a/libpurple/protocols/yahoo/yahoo.c Mon May 05 06:55:00 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Wed May 07 12:14:28 2008 +0000 @@ -2124,7 +2124,7 @@ switch (err) { case 3: - msg = g_strdup(_("Invalid screen name.")); + msg = g_strdup(_("Invalid username.")); reason = PURPLE_CONNECTION_ERROR_INVALID_USERNAME; break; case 13: @@ -3483,9 +3483,12 @@ { PurpleConnection *gc = user_data; gboolean set_cookie = FALSE; - char *url; + gchar *url; + struct yahoo_data *yd = gc->proto_data; g_return_if_fail(PURPLE_CONNECTION_IS_VALID(gc)); + + yd->url_datas = g_slist_remove(yd->url_datas, url_data); if (error_message != NULL) purple_debug_error("yahoo", "Requesting mail login token failed: %s\n", error_message); @@ -3500,7 +3503,6 @@ } if (!set_cookie) { - struct yahoo_data *yd = gc->proto_data; purple_debug_error("yahoo", "No mail login token; forwarding to login screen.\n"); url = g_strdup(yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); } @@ -3541,7 +3543,9 @@ g_free(request); - if (url_data == NULL) { + if (url_data != NULL) + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); + else { const char *yahoo_mail_url = (yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); purple_debug_error("yahoo", "Unable to request mail login token; forwarding to login screen.");