--- old-daap/sources/rb-browser-source.c	2006-05-06 14:35:32.000000000 +1000
+++ new-daap/sources/rb-browser-source.c	2006-05-06 14:35:32.000000000 +1000
@@ -118,7 +118,7 @@ struct RBBrowserSourcePrivate
 	RBEntryView *songs;
 	GtkWidget *paned;
 
-	gboolean lock;
+	gboolean query_on_init;
 
 	char *search_text;
 	RhythmDBQueryModel *cached_all_query;
@@ -167,7 +167,8 @@ enum
 {
 	PROP_0,
 	PROP_ENTRY_TYPE,
-	PROP_SORTING_KEY
+	PROP_SORTING_KEY,
+	PROP_QUERY_ON_INIT
 };
 
 
@@ -223,6 +224,13 @@ rb_browser_source_class_init (RBBrowserS
 							      "GConf key for storing sort-order",
 							      NULL,
 							      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+	g_object_class_install_property (object_class,
+					 PROP_QUERY_ON_INIT,
+					 g_param_spec_boolean ("query-on-init",
+							       "query on init",
+							       "Whether to run the query immediately on construction",
+							       TRUE,
+							       G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 
 	g_type_class_add_private (klass, sizeof (RBBrowserSourcePrivate));
 }
@@ -461,10 +469,9 @@ rb_browser_source_constructor (GType typ
 
 	source->priv->cached_all_query = rhythmdb_query_model_new_empty (source->priv->db);
 	rb_library_browser_set_model (source->priv->browser, source->priv->cached_all_query, TRUE);
-	rhythmdb_do_full_query_async (source->priv->db,
-				      RHYTHMDB_QUERY_RESULTS (source->priv->cached_all_query),
-				      RHYTHMDB_QUERY_PROP_EQUALS, RHYTHMDB_PROP_TYPE, source->priv->entry_type,
-				      RHYTHMDB_QUERY_END);
+
+	if (source->priv->query_on_init)
+		rb_browser_source_run_initial_query (source);
 
 	return G_OBJECT (source);
 }
@@ -486,6 +493,9 @@ rb_browser_source_set_property (GObject 
 		g_free (source->priv->sorting_key);
 		source->priv->sorting_key = g_strdup (g_value_get_string (value));
 		break;
+	case PROP_QUERY_ON_INIT:
+		source->priv->query_on_init = g_value_get_boolean (value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -513,6 +523,15 @@ rb_browser_source_get_property (GObject 
 	}
 }
 
+void 
+rb_browser_source_run_initial_query (RBBrowserSource *source)
+{
+	rhythmdb_do_full_query_async (source->priv->db,
+				      RHYTHMDB_QUERY_RESULTS (source->priv->cached_all_query),
+				      RHYTHMDB_QUERY_PROP_EQUALS, RHYTHMDB_PROP_TYPE, source->priv->entry_type,
+				      RHYTHMDB_QUERY_END);
+}
+
 static void
 rb_browser_source_cmd_choose_genre (GtkAction *action,
 				    RBShell *shell)

--- old-daap/sources/rb-browser-source.h	2006-05-06 14:35:32.000000000 +1000
+++ new-daap/sources/rb-browser-source.h	2006-05-06 14:35:32.000000000 +1000
@@ -65,6 +65,7 @@ GType		rb_browser_source_get_type		(void
 void            rb_browser_source_class_add_actions	(RBShell *shell, 
 							GtkActionGroup *uimgr);
 
+void		rb_browser_source_run_initial_query	(RBBrowserSource *source);
 const char *	rb_browser_source_get_paned_key		(RBBrowserSource *source);
 gboolean	rb_browser_source_has_first_added_column (RBBrowserSource *source);
 gboolean	rb_browser_source_has_drop_support	(RBBrowserSource *source);

--- old-daap/sources/rb-library-source.c	2006-05-06 14:35:32.000000000 +1000
+++ new-daap/sources/rb-library-source.c	2006-05-06 14:35:32.000000000 +1000
@@ -313,6 +313,7 @@ rb_library_source_new (RBShell *shell)
 					  "sorting-key", CONF_STATE_LIBRARY_SORTING,
 					  "shell", shell,
 					  "icon", icon,
+					  "query-on-init", FALSE,
 					  NULL));
 	rb_shell_register_entry_type_for_source (shell, source,
 						 RHYTHMDB_ENTRY_TYPE_SONG);

--- old-daap/shell/rb-shell.c	2006-05-06 14:35:32.000000000 +1000
+++ new-daap/shell/rb-shell.c	2006-05-06 14:35:32.000000000 +1000
@@ -2460,6 +2460,7 @@ idle_handle_load_complete (RBShell *shel
 
 	rb_debug ("load complete");
 
+	rb_browser_source_run_initial_query (RB_BROWSER_SOURCE (shell->priv->library_source));
 	rb_playlist_manager_load_playlists (shell->priv->playlist_manager);
 	shell->priv->load_complete = TRUE;
 	shell->priv->save_playlist_id = g_timeout_add (10000, (GSourceFunc) idle_save_playlist_manager, shell->priv->playlist_manager);

