diff --git a/libnautilus-private/nautilus-query.c b/libnautilus-private/nautilus-query.c
index 392aea3..5a73375 100644
--- a/libnautilus-private/nautilus-query.c
+++ b/libnautilus-private/nautilus-query.c
@@ -135,6 +135,8 @@ nautilus_query_to_readable_string (NautilusQuery *query)
 		return g_strdup (_("Search"));
 	}
 
+	/* XXX special-case query->details->text = "" ? */
+
 	return g_strdup_printf (_("Search for \"%s\""), query->details->text);
 }
 
diff --git a/libnautilus-private/nautilus-search-engine-simple.c b/libnautilus-private/nautilus-search-engine-simple.c
index a357704..52eeab4 100644
--- a/libnautilus-private/nautilus-search-engine-simple.c
+++ b/libnautilus-private/nautilus-search-engine-simple.c
@@ -200,6 +200,8 @@ send_batch (SearchThreadData *data)
 	G_FILE_ATTRIBUTE_STANDARD_TYPE "," \
 	G_FILE_ATTRIBUTE_ID_FILE
 
+#include <stdio.h>
+
 static void
 visit_directory (GFile *dir, SearchThreadData *data)
 {
@@ -242,6 +244,7 @@ visit_directory (GFile *dir, SearchThreadData *data)
 		g_free (normalized);
 		
 		hit = TRUE;
+		/* Always matches the blank query string "", as data->words[0] = NULL */
 		for (i = 0; data->words[i] != NULL; i++) {
 			if (strstr (lower_name, data->words[i]) == NULL) {
 				hit = FALSE;
diff --git a/src/nautilus-navigation-window-menus.c b/src/nautilus-navigation-window-menus.c
index 20051da..b350595 100644
--- a/src/nautilus-navigation-window-menus.c
+++ b/src/nautilus-navigation-window-menus.c
@@ -711,14 +711,13 @@ action_show_hide_search_callback (GtkAction *action,
 			char *uri;
 
 			query = nautilus_query_editor_get_query (slot->query_editor);
-			if (query != NULL) {
-				uri = nautilus_query_get_location (query);
-				if (uri != NULL) {
-					location = g_file_new_for_uri (uri);
-					g_free (uri);
-				}
-				g_object_unref (query);
+
+			uri = nautilus_query_get_location (query);
+			if (uri != NULL) {
+				location = g_file_new_for_uri (uri);
+				g_free (uri);
 			}
+			g_object_unref (query);
 		}
 
 		/* Last try: use the home directory as the return location */
diff --git a/src/nautilus-navigation-window-pane.c b/src/nautilus-navigation-window-pane.c
index 4c156ed..808ac68 100644
--- a/src/nautilus-navigation-window-pane.c
+++ b/src/nautilus-navigation-window-pane.c
@@ -106,6 +106,7 @@ search_bar_activate_callback (NautilusSearchBar *bar,
 			      NautilusNavigationWindowPane *pane)
 {
 	char *uri, *current_uri;
+	NautilusWindowSlot *slot;
 	NautilusDirectory *directory;
 	NautilusSearchDirectory *search_directory;
 	NautilusQuery *query;
@@ -122,16 +123,15 @@ search_bar_activate_callback (NautilusSearchBar *bar,
 	search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);
 
 	query = nautilus_search_bar_get_query (NAUTILUS_SEARCH_BAR (pane->search_bar));
-	if (query != NULL) {
-		NautilusWindowSlot *slot = NAUTILUS_WINDOW_PANE (pane)->active_slot;
-		if (!nautilus_search_directory_is_indexed (search_directory)) {
-			current_uri = nautilus_window_slot_get_location_uri (slot);
-			nautilus_query_set_location (query, current_uri);
-			g_free (current_uri);
-		}
-		nautilus_search_directory_set_query (search_directory, query);
-		g_object_unref (query);
+
+	slot = NAUTILUS_WINDOW_PANE (pane)->active_slot;
+	if (!nautilus_search_directory_is_indexed (search_directory)) {
+		current_uri = nautilus_window_slot_get_location_uri (slot);
+		nautilus_query_set_location (query, current_uri);
+		g_free (current_uri);
 	}
+	nautilus_search_directory_set_query (search_directory, query);
+	g_object_unref (query);
 
 	nautilus_window_slot_go_to (NAUTILUS_WINDOW_PANE (pane)->active_slot, location, FALSE);
 
diff --git a/src/nautilus-query-editor.c b/src/nautilus-query-editor.c
index 6691be5..c344ccb 100644
--- a/src/nautilus-query-editor.c
+++ b/src/nautilus-query-editor.c
@@ -1159,12 +1159,6 @@ nautilus_query_editor_get_query (NautilusQueryEditor *editor)
 	}
 
 	query_text = gtk_entry_get_text (GTK_ENTRY (editor->details->entry));
-
-	/* Empty string is a NULL query */
-	if (query_text && query_text[0] == '\0') {
-		return NULL;
-	}
-	
 	query = nautilus_query_new ();
 	nautilus_query_set_text (query, query_text);
 
@@ -1290,6 +1284,7 @@ nautilus_query_editor_set_query (NautilusQueryEditor *editor, NautilusQuery *que
 	text = nautilus_query_get_text (query);
 
 	if (!text) {
+		/* XXX now blank query text "" queries for all items */
 		text = g_strdup ("");
 	}
 
diff --git a/src/nautilus-search-bar.c b/src/nautilus-search-bar.c
index 1ef6c55..0de6f79 100644
--- a/src/nautilus-search-bar.c
+++ b/src/nautilus-search-bar.c
@@ -217,11 +217,6 @@ nautilus_search_bar_get_query (NautilusSearchBar *bar)
 	NautilusQuery *query;
 
 	query_text = gtk_entry_get_text (GTK_ENTRY (bar->details->entry));
-
-	if (query_text && query_text[0] == '\0') {
-		query_text = NULL;
-	}
-	
 	query = nautilus_query_new ();
 	nautilus_query_set_text (query, query_text);
 
