diff -r 9004588e1132 -r 3d27499bb0d5 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Wed Jul 25 21:01:29 2007 +0000 +++ b/pidgin/gtkconv.c Fri Jul 27 10:44:11 2007 +0000 @@ -2975,7 +2975,7 @@ for (list = gtk_container_get_children(GTK_CONTAINER(menu)); list; ) { GtkWidget *w = list->data; - list = list->next; + list = g_list_delete_link(list, list); gtk_widget_destroy(w); } @@ -2993,6 +2993,10 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); gtk_widget_set_sensitive(item, FALSE); } + else + { + g_list_free(list); + } gtk_widget_show_all(menu); } @@ -3373,7 +3377,7 @@ for (child = gtk_container_get_children(GTK_CONTAINER(menu)); child != NULL; - child = child->next) { + child = g_list_delete_link(child, child)) { GtkWidget *item = child->data; PurpleBuddy *item_buddy;