diff -r 9571912ae4fc -r 04fa195c585c pidgin/gtkaccount.c --- a/pidgin/gtkaccount.c Thu May 01 02:00:32 2014 +0200 +++ b/pidgin/gtkaccount.c Tue May 06 10:46:49 2014 +0200 @@ -241,10 +241,17 @@ if (dialog->plugin != NULL) { + PurplePlugin *old_plugin = NULL; + dialog->prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin); - g_free(dialog->protocol_id); - dialog->protocol_id = g_strdup(dialog->plugin->info->id); + if (dialog->protocol_id) + old_plugin = purple_find_prpl(dialog->protocol_id); + + if (old_plugin != new_plugin) { + g_free(dialog->protocol_id); + dialog->protocol_id = g_strdup(dialog->plugin->info->id); + } } if (dialog->account != NULL)