diff -Naur rhythmbox--cvs-old/shell/rb-playlist-manager.c rhythmbox--cvs-source-show/shell/rb-playlist-manager.c
--- rhythmbox--cvs-old/shell/rb-playlist-manager.c	2005-06-09 13:02:53.000000000 +1000
+++ rhythmbox--cvs-source-show/shell/rb-playlist-manager.c	2005-06-10 22:54:53.535061528 +1000
@@ -122,6 +122,7 @@
 enum
 {
 	PLAYLIST_ADDED,
+	PLAYLIST_CREATED,
 	PLAYLIST_LOAD_START,
 	PLAYLIST_LOAD_FINISH,
 	LAST_SIGNAL,
@@ -248,6 +249,16 @@
 			      g_cclosure_marshal_VOID__OBJECT,
 			      G_TYPE_NONE,
 			      1, G_TYPE_OBJECT);
+	
+	rb_playlist_manager_signals[PLAYLIST_CREATED] =
+		g_signal_new ("playlist_created",
+			      RB_TYPE_PLAYLIST_MANAGER,
+			      G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (RBPlaylistManagerClass, playlist_created),
+			      NULL, NULL,
+			      g_cclosure_marshal_VOID__OBJECT,
+			      G_TYPE_NONE,
+			      1, G_TYPE_OBJECT);
 
 	rb_playlist_manager_signals[PLAYLIST_LOAD_START] =
 		g_signal_new ("load_start",
@@ -670,6 +681,9 @@
 	append_new_playlist_source (mgr, RB_PLAYLIST_SOURCE (playlist));
 	rb_sourcelist_edit_source_name (mgr->priv->sourcelist, playlist);
 	rb_playlist_manager_set_dirty (mgr);
+	
+	g_signal_emit (G_OBJECT (mgr), rb_playlist_manager_signals[PLAYLIST_CREATED], 0,
+		       playlist);
 
 	return playlist;
 }
diff -Naur rhythmbox--cvs-old/shell/rb-playlist-manager.h rhythmbox--cvs-source-show/shell/rb-playlist-manager.h
--- rhythmbox--cvs-old/shell/rb-playlist-manager.h	2005-06-09 13:02:53.000000000 +1000
+++ rhythmbox--cvs-source-show/shell/rb-playlist-manager.h	2005-06-10 22:54:53.535061528 +1000
@@ -52,6 +52,7 @@
 
 	/* signals */
 	void	(*playlist_added) (RBSource *source);
+	void	(*playlist_created) (RBSource *source);
 	void	(*load_start) (void);
 	void	(*load_finish) (void);
 } RBPlaylistManagerClass;
diff -Naur rhythmbox--cvs-old/shell/rb-shell.c rhythmbox--cvs-source-show/shell/rb-shell.c
--- rhythmbox--cvs-old/shell/rb-shell.c	2005-06-09 13:02:53.000000000 +1000
+++ rhythmbox--cvs-source-show/shell/rb-shell.c	2005-06-10 22:54:53.537061224 +1000
@@ -130,6 +130,7 @@
 						      RBShell *shell);
 
 static void rb_shell_playlist_added_cb (RBPlaylistManager *mgr, RBSource *source, RBShell *shell);
+static void rb_shell_playlist_created_cb (RBPlaylistManager *mgr, RBSource *source, RBShell *shell);
 static void rb_shell_playlist_load_start_cb (RBPlaylistManager *mgr, RBShell *shell);
 static void rb_shell_playlist_load_finish_cb (RBPlaylistManager *mgr, RBShell *shell);
 static void rb_shell_source_deleted_cb (RBSource *source, RBShell *shell);
@@ -1001,6 +1002,8 @@
 
 	g_signal_connect_object (G_OBJECT (shell->priv->playlist_manager), "playlist_added",
 				 G_CALLBACK (rb_shell_playlist_added_cb), shell, 0);
+	g_signal_connect_object (G_OBJECT (shell->priv->playlist_manager), "playlist_created",
+				 G_CALLBACK (rb_shell_playlist_created_cb), shell, 0);
 	g_signal_connect_object (G_OBJECT (shell->priv->playlist_manager), "load_start",
 				 G_CALLBACK (rb_shell_playlist_load_start_cb), shell, 0);
 	g_signal_connect_object (G_OBJECT (shell->priv->playlist_manager), "load_finish",
@@ -1279,6 +1282,13 @@
 }
 
 static void
+rb_shell_playlist_created_cb (RBPlaylistManager *mgr, RBSource *source, RBShell *shell)
+{
+	eel_gconf_set_boolean (CONF_UI_SMALL_DISPLAY, FALSE);
+	eel_gconf_set_boolean (CONF_UI_SOURCELIST_HIDDEN, FALSE);
+}
+
+static void
 rb_shell_playlist_load_start_cb (RBPlaylistManager *mgr, RBShell *shell)
 {
 	shell->priv->show_db_errors = TRUE;
