diff -Nur nautilus-2.10.0/libnautilus-private/nautilus-global-preferences.c nautilus-2.10.0.new/libnautilus-private/nautilus-global-preferences.c
--- nautilus-2.10.0/libnautilus-private/nautilus-global-preferences.c	2004-11-22 16:24:36.000000000 +0100
+++ nautilus-2.10.0.new/libnautilus-private/nautilus-global-preferences.c	2005-04-03 18:07:11.564399224 +0200
@@ -511,6 +511,12 @@
 	  default_trash_link_name, g_free,
 	},
 	
+	
+	{ NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS,
+	  PREFERENCE_BOOLEAN,
+	  GINT_TO_POINTER (TRUE)
+	},
+
 	{ NULL }
 };
 
diff -Nur nautilus-2.10.0/libnautilus-private/nautilus-global-preferences.h nautilus-2.10.0.new/libnautilus-private/nautilus-global-preferences.h
--- nautilus-2.10.0/libnautilus-private/nautilus-global-preferences.h	2004-11-22 16:24:36.000000000 +0100
+++ nautilus-2.10.0.new/libnautilus-private/nautilus-global-preferences.h	2005-04-03 18:07:11.565399072 +0200
@@ -74,6 +74,9 @@
 /* Single/Double click preference  */
 #define NAUTILUS_PREFERENCES_CLICK_POLICY			"preferences/click_policy"
 
+/* Ubuntu spatial change */
+#define NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS 	        "preferences/close_previous_windows"
+
 /* Activating executable text files */
 #define NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION		"preferences/executable_text_activation"
 
diff -Nur nautilus-2.10.0/src/file-manager/fm-directory-view.c nautilus-2.10.0.new/src/file-manager/fm-directory-view.c
--- nautilus-2.10.0/src/file-manager/fm-directory-view.c	2005-04-03 18:06:41.911907000 +0200
+++ nautilus-2.10.0.new/src/file-manager/fm-directory-view.c	2005-04-03 18:07:11.580396792 +0200
@@ -6891,6 +6891,14 @@
 	parameters->view = view;
 	parameters->file = file;
 	parameters->mode = mode;
+
+	if ( eel_preferences_get_boolean (NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS) && nautilus_file_is_directory (file)) {
+		if (flags == NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND) 
+			flags = 0;
+		else 
+			flags = NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND;
+	}
+
 	parameters->flags = flags;
 	parameters->callback = activate_activation_uri_ready_callback;
 	parameters->mounted = FALSE;
diff -Nur nautilus-2.10.0/src/nautilus-file-management-properties.c nautilus-2.10.0.new/src/nautilus-file-management-properties.c
--- nautilus-2.10.0/src/nautilus-file-management-properties.c	2004-07-16 14:04:29.000000000 +0200
+++ nautilus-2.10.0.new/src/nautilus-file-management-properties.c	2005-04-03 18:07:11.582396488 +0200
@@ -71,6 +71,7 @@
 #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET "trash_delete_checkbutton"
 #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_OPEN_NEW_WINDOW_WIDGET "new_window_checkbutton"
 #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET "hidden_files_checkbutton"
+#define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_CLOSE_PREVIOUS_WINDOWS_WIDGET "close_previous_windows_checkbutton"
 #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TREE_VIEW_FOLDERS_WIDGET "treeview_folders_checkbutton"
 
 /* int enums */
@@ -598,6 +599,9 @@
 	eel_preferences_glade_connect_bool_slave (xml_dialog,
 						  NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET,
 						  NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES);
+	eel_preferences_glade_connect_bool_slave (xml_dialog,
+						  NAUTILUS_FILE_MANAGEMENT_PROPERTIES_CLOSE_PREVIOUS_WINDOWS_WIDGET,
+						  NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS);
 	eel_preferences_glade_connect_bool (xml_dialog,
 					    NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TREE_VIEW_FOLDERS_WIDGET,
 					    NAUTILUS_PREFERENCES_TREE_SHOW_ONLY_DIRECTORIES);
diff -Nur nautilus-2.10.0/src/nautilus-file-management-properties.glade nautilus-2.10.0.new/src/nautilus-file-management-properties.glade
--- nautilus-2.10.0/src/nautilus-file-management-properties.glade	2005-03-01 12:32:57.000000000 +0100
+++ nautilus-2.10.0.new/src/nautilus-file-management-properties.glade	2005-04-03 18:08:48.774621024 +0200
@@ -1029,6 +1029,25 @@
 			      <property name="fill">False</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="close_previous_windows_checkbutton">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">C_lose previous folder when opening a subfolder</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
diff -Nur nautilus-2.10.0/src/nautilus-file-management-properties.gladep nautilus-2.10.0.new/src/nautilus-file-management-properties.gladep
--- nautilus-2.10.0/src/nautilus-file-management-properties.gladep	1970-01-01 01:00:00.000000000 +0100
+++ nautilus-2.10.0.new/src/nautilus-file-management-properties.gladep	2005-04-03 18:07:11.586395880 +0200
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+  <name></name>
+  <program_name></program_name>
+  <gnome_support>FALSE</gnome_support>
+</glade-project>
diff -Nur nautilus-2.10.0/src/nautilus-spatial-window.c nautilus-2.10.0.new/src/nautilus-spatial-window.c
--- nautilus-2.10.0/src/nautilus-spatial-window.c	2005-02-22 11:26:18.000000000 +0100
+++ nautilus-2.10.0.new/src/nautilus-spatial-window.c	2005-04-03 18:07:11.587395728 +0200
@@ -431,7 +431,10 @@
 		{
 			close_behind = TRUE;
 		}
-		nautilus_window_open_location_with_selection (NAUTILUS_WINDOW (window), location, selection, close_behind);
+		if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS))
+			nautilus_window_open_location_with_selection (NAUTILUS_WINDOW (window), location, selection, !close_behind);
+		else
+			nautilus_window_open_location_with_selection (NAUTILUS_WINDOW (window), location, selection, close_behind);
 	}
 
 	if (event != NULL) {
diff -Nur nautilus-2.10.0/src/nautilus-window.c nautilus-2.10.0.new/src/nautilus-window.c
--- nautilus-2.10.0/src/nautilus-window.c	2005-02-22 09:43:44.000000000 +0100
+++ nautilus-2.10.0.new/src/nautilus-window.c	2005-04-03 18:07:11.589395424 +0200
@@ -224,7 +224,10 @@
 void
 nautilus_window_go_to (NautilusWindow *window, const char *uri)
 {
-	nautilus_window_open_location (window, uri, FALSE);
+	if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_CLOSE_PREVIOUS_WINDOWS))
+		nautilus_window_open_location (window, uri, TRUE);
+	else
+		nautilus_window_open_location (window, uri, FALSE);
 }
 
 
