diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index 0b1f2c3..b964838 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -3874,7 +3874,7 @@ keyboard_up (NautilusIconContainer *container,
 			    closest_in_90_degrees);
 }
 
-static void
+static gboolean
 keyboard_space (NautilusIconContainer *container,
 		GdkEventKey *event)
 {
@@ -3910,10 +3910,12 @@ keyboard_space (NautilusIconContainer *container,
 			}
 		}
 	} else if ((event->state & GDK_SHIFT_MASK) != 0) {
-		activate_selected_items_alternate (container, NULL);
+		return FALSE;
 	} else {
-		activate_selected_items (container);
+		return FALSE;
 	}
+
+	return TRUE;
 }
 
 /* look for the first icon that matches the longest part of a given
@@ -5412,8 +5414,7 @@ key_press_event (GtkWidget *widget,
 			}
 			break;
 		case GDK_space:
-			keyboard_space (container, event);
-			handled = TRUE;
+			handled = keyboard_space (container, event);
 			break;
 #ifndef TAB_NAVIGATION_DISABLED
 		case GDK_Tab:
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 2ba25f4..be862c5 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -927,7 +927,7 @@ static void
 row_activated_callback (GtkTreeView *treeview, GtkTreePath *path, 
 			GtkTreeViewColumn *column, FMListView *view)
 {
-	activate_selected_items (view);
+	GTK_TREE_VIEW_GET_CLASS (view->details->tree_view)->start_interactive_search (treeview);
 }
 
 static void
@@ -965,22 +965,6 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
 			handled = TRUE;
 		}
 		break;
-	case GDK_space:
-		if (event->state & GDK_CONTROL_MASK) {
-			handled = FALSE;
-			break;
-		}
-		if (!gtk_widget_has_focus (GTK_WIDGET (FM_LIST_VIEW (view)->details->tree_view))) {
-			handled = FALSE;
-			break;
-		}
-		if ((event->state & GDK_SHIFT_MASK) != 0) {
-			activate_selected_items_alternate (FM_LIST_VIEW (view), NULL, TRUE);
-		} else {
-			activate_selected_items (FM_LIST_VIEW (view));
-		}
-		handled = TRUE;
-		break;
 	case GDK_Return:
 	case GDK_KP_Enter:
 		if ((event->state & GDK_SHIFT_MASK) != 0) {
