--- a/libgaim/account.c Thu Nov 16 20:07:19 2006 +0000 +++ b/libgaim/account.c Thu Nov 16 22:47:45 2006 +0000 @@ -1270,9 +1270,18 @@ account->buddy_icon = g_strdup(icon); if (gaim_account_is_connected(account)) { - char *filename = gaim_buddy_icons_get_full_path(icon); - serv_set_buddyicon(gaim_account_get_connection(account), filename); - g_free(filename); + GaimConnection *gc; + GaimPluginProtocolInfo *prpl_info; + + gc = gaim_account_get_connection(account); + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if (prpl_info && prpl_info->set_buddy_icon) + { + char *filename = gaim_buddy_icons_get_full_path(icon); + prpl_info->set_buddy_icon(gc, filename); + g_free(filename); + } } schedule_accounts_save();