diff -up nautilus-2.25.2/src/nautilus-window-slot.c.fix-crasher nautilus-2.25.2/src/nautilus-window-slot.c --- nautilus-2.25.2/src/nautilus-window-slot.c.fix-crasher 2009-01-07 14:19:02.542397115 -0500 +++ nautilus-2.25.2/src/nautilus-window-slot.c 2009-01-07 14:15:25.815412326 -0500 @@ -570,6 +570,20 @@ nautilus_window_slot_dispose (GObject *o slot = NAUTILUS_WINDOW_SLOT (object); + if (slot->content_view) { + widget = nautilus_view_get_widget (slot->content_view); + gtk_widget_destroy (widget); + g_object_unref (slot->content_view); + slot->content_view = NULL; + } + + if (slot->new_content_view) { + widget = nautilus_view_get_widget (slot->new_content_view); + gtk_widget_destroy (widget); + g_object_unref (slot->new_content_view); + slot->new_content_view = NULL; + } + nautilus_window_slot_set_viewed_file (slot, NULL); /* TODO? why do we unref here? the file is NULL. * It was already here before the slot move, though */ @@ -598,20 +612,6 @@ nautilus_window_slot_dispose (GObject *o slot->find_mount_cancellable = NULL; } - if (slot->content_view) { - widget = nautilus_view_get_widget (slot->content_view); - gtk_widget_destroy (widget); - g_object_unref (slot->content_view); - slot->content_view = NULL; - } - - if (slot->new_content_view) { - widget = nautilus_view_get_widget (slot->new_content_view); - gtk_widget_destroy (widget); - g_object_unref (slot->new_content_view); - slot->new_content_view = NULL; - } - slot->window = NULL; g_free (slot->title);