Index: libnautilus-private/nautilus-icon-dnd.c =================================================================== --- libnautilus-private/nautilus-icon-dnd.c (revisione 13757) +++ libnautilus-private/nautilus-icon-dnd.c (copia locale) @@ -271,10 +271,12 @@ static void nautilus_icon_container_each_selected_icon (NautilusIconContainer *container, gboolean (*each_function) (NautilusIcon *, gpointer), gpointer data) { - GList *p; NautilusIcon *icon; + GList *p; + + p = g_list_copy (container->details->icons); - for (p = container->details->icons; p != NULL; p = p->next) { + for (p = g_list_reverse (p); p != NULL; p = p->next) { icon = p->data; if (!icon->is_selected) { continue; @@ -283,6 +285,8 @@ nautilus_icon_container_each_selected_ic return; } } + + g_list_free (p); } /* Adaptor function used with nautilus_icon_container_each_selected_icon