Index: libnautilus-private/nautilus-window-info.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-window-info.c,v
retrieving revision 1.4
diff -p -u -r1.4 nautilus-window-info.c
--- libnautilus-private/nautilus-window-info.c	1 Jul 2005 14:13:08 -0000	1.4
+++ libnautilus-private/nautilus-window-info.c	10 Dec 2006 10:17:36 -0000
@@ -24,6 +24,8 @@
 
 #include <config.h>
 #include "nautilus-window-info.h"
+#include "../src/nautilus-pathbar.h"
+#include "../src/nautilus-window-private.h"
 
 enum {
 	LOADING_URI,
@@ -217,6 +219,46 @@ nautilus_window_info_get_history (Nautil
 	return (* NAUTILUS_WINDOW_INFO_GET_IFACE (window)->get_history) (window);
 }
 
+void
+nautilus_window_info_files_deleted (NautilusWindowInfo *window, const GList *files)
+{
+	gboolean is_spatial;
+	const GList *file_node;
+	char *file;
+	NautilusBookmarkList *bookmarks;
+	
+	/* Determine what type of window we are */
+	is_spatial = nautilus_window_info_get_window_type (window) == NAUTILUS_WINDOW_SPATIAL;
+	
+	/* Remove the info for each file */
+	for (file_node = files; file_node != NULL; file_node = file_node->next) {
+		file = (char *) file_node->data;
+		
+		/* Remove from history */
+		nautilus_remove_from_history_list_no_notify (file);
+		nautilus_send_history_list_changed ();
+	
+		/* Remove the bookmark for this item */
+		bookmarks = nautilus_window_info_get_bookmark_list (window);
+		nautilus_bookmark_list_delete_items_with_uri (bookmarks, file);
+		
+		if (!is_spatial) {
+			/* Remove from navigation list. The item has been deleted, so there
+			* will no longer be any forward information to navigate to.
+	 		*/
+			nautilus_navigation_window_clear_forward_list (NAUTILUS_NAVIGATION_WINDOW (window));
+			nautilus_navigation_window_allow_forward (NAUTILUS_NAVIGATION_WINDOW (window), FALSE);
+		}
+	}
+	
+	if (!is_spatial) {
+		/* Adjust path bar location */
+		nautilus_path_bar_clear_buttons (NAUTILUS_PATH_BAR (NAUTILUS_NAVIGATION_WINDOW (window)->path_bar));
+		nautilus_path_bar_set_path (NAUTILUS_PATH_BAR (NAUTILUS_NAVIGATION_WINDOW (window)->path_bar),
+				    	    window->details->location);
+	}			
+}		 
+		 
 NautilusBookmarkList *
 nautilus_window_info_get_bookmark_list (NautilusWindowInfo *window)
 {
Index: libnautilus-private/nautilus-window-info.h
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-window-info.h,v
retrieving revision 1.5
diff -p -u -r1.5 nautilus-window-info.h
--- libnautilus-private/nautilus-window-info.h	19 Oct 2005 18:03:23 -0000	1.5
+++ libnautilus-private/nautilus-window-info.h	10 Dec 2006 10:17:36 -0000
@@ -158,6 +158,8 @@ void                              nautil
 NautilusWindowType                nautilus_window_info_get_window_type          (NautilusWindowInfo                *window);
 char *                            nautilus_window_info_get_title                (NautilusWindowInfo                *window);
 GList *                           nautilus_window_info_get_history              (NautilusWindowInfo                *window);
+void				  nautilus_window_info_files_deleted 		(NautilusWindowInfo 		   *window,
+										 const GList 			   *files);
 NautilusBookmarkList *		  nautilus_window_info_get_bookmark_list        (NautilusWindowInfo                *window);
 char *                            nautilus_window_info_get_current_location     (NautilusWindowInfo                *window);
 int                               nautilus_window_info_get_selection_count      (NautilusWindowInfo                *window);
Index: src/file-manager/fm-directory-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-directory-view.c,v
retrieving revision 1.753
diff -p -u -r1.753 fm-directory-view.c
--- src/file-manager/fm-directory-view.c	23 Nov 2006 13:57:01 -0000	1.753
+++ src/file-manager/fm-directory-view.c	10 Dec 2006 10:17:37 -0000
@@ -32,7 +32,6 @@
 #include "fm-directory-view.h"
 #include "fm-list-view.h"
 #include "fm-desktop-icon-view.h"
-
 #include "fm-actions.h"
 #include "fm-error-reporting.h"
 #include "fm-properties-window.h"
@@ -101,10 +100,11 @@
 #include <libnautilus-private/nautilus-mime-actions.h>
 #include <libnautilus-private/nautilus-module.h>
 #include <libnautilus-private/nautilus-program-choosing.h>
+#include <libnautilus-private/nautilus-signaller.h>
 #include <libnautilus-private/nautilus-trash-directory.h>
 #include <libnautilus-private/nautilus-trash-monitor.h>
 #include <libnautilus-private/nautilus-ui-utilities.h>
-#include <libnautilus-private/nautilus-signaller.h>
+
 #include <unistd.h>
 
 /* Number of seconds until cancel dialog shows up */
@@ -3941,6 +3941,11 @@ trash_or_delete_files_common (FMDirector
 		}
 	}
 
+	/* Make sure that reference to the locations are no longer listed in the history, 
+	 * navigation arrows or the path view.
+	 */ 
+	nautilus_window_info_files_deleted (view->details->window, file_uris);
+		 
 	if (in_trash_uris != NULL && moveable_uris == NULL && unmoveable_uris == NULL) {
 		if (confirm_delete_from_trash (view, in_trash_uris)) {
 			nautilus_file_operations_delete (in_trash_uris, GTK_WIDGET (view));
