=== modified file 'a/plugins/ipod/rb-ipod-plugin.c'
--- a/plugins/ipod/rb-ipod-plugin.c	
+++ b/plugins/ipod/rb-ipod-plugin.c	
@@ -29,6 +29,7 @@
 #include <glib-object.h>
 #include <libgnomevfs/gnome-vfs.h>
 
+#include "rb-file-helpers.h"
 #include "rb-removable-media-manager.h"
 #include "rb-source.h"
 #include "rb-ipod-source.h"
@@ -104,6 +105,7 @@
 {
 	RBIpodPlugin *plugin = RB_IPOD_PLUGIN (bplugin);
 	RBRemovableMediaManager *rmm = NULL;
+	GtkUIManager *uimanager;
 
 	plugin->shell = shell;
 
@@ -111,6 +113,13 @@
 	g_signal_connect (G_OBJECT (rmm),
 			  "create-source", G_CALLBACK (create_source_cb),
 			  plugin);
+
+	g_object_get (G_OBJECT (plugin->shell), 
+		      "ui-manager", &uimanager, 
+		      NULL);
+	gtk_ui_manager_add_ui_from_file (uimanager,
+					 rb_file ("ipod-ui.xml"), NULL);
+	g_object_unref (G_OBJECT (uimanager));
 }
 
 static void

=== modified file 'a/sources/rb-ipod-source.c'
--- a/sources/rb-ipod-source.c	
+++ b/sources/rb-ipod-source.c	
@@ -37,7 +37,6 @@
 #include "eel-gconf-extensions.h"
 #include "rb-ipod-source.h"
 #include "rb-debug.h"
-#include "rb-file-helpers.h"
 #include "rb-removable-media-manager.h"
 #include "rb-static-playlist-source.h"
 #include "rb-util.h"
@@ -75,7 +74,6 @@
 {
 	Itdb_iTunesDB *ipod_db;
 	gchar *ipod_mount_path;
-	GtkActionGroup *action_group;	
 } RBiPodSourcePrivate;
 
 
@@ -151,28 +149,21 @@
 	RBiPodSource *source;
 	RBEntryView *songs;
 	RBiPodSourcePrivate *priv;
-	GtkUIManager *uimanager;
+	GtkActionGroup *action_group;	
 
 	source = RB_IPOD_SOURCE (G_OBJECT_CLASS (rb_ipod_source_parent_class)->
 			constructor (type, n_construct_properties, construct_properties));
 	priv = IPOD_SOURCE_GET_PRIVATE (source);
+
+	action_group = _rb_source_register_action_group (RB_SOURCE (source),
+							 "iPodActions",
+							 rb_ipod_source_actions,
+							 G_N_ELEMENTS (rb_ipod_source_actions),
+							 source);
+
 	songs = rb_source_get_entry_view (RB_SOURCE (source));
 	rb_entry_view_append_column (songs, RB_ENTRY_VIEW_COL_RATING, FALSE);
 	rb_entry_view_append_column (songs, RB_ENTRY_VIEW_COL_LAST_PLAYED, FALSE);
-
-	priv->action_group = _rb_source_register_action_group (RB_SOURCE (source),
-							       "iPodActions",
-							       rb_ipod_source_actions,
-							       G_N_ELEMENTS (rb_ipod_source_actions),
-							       source);
-
-	/* FIXME: shouldn't it be done only once for the class instead of 
-	 * being done for every RBiPodSource object created?
-	 */
-	g_object_get (G_OBJECT (source), "ui-manager", &uimanager, NULL);
-	gtk_ui_manager_add_ui_from_file (uimanager,
-					 rb_file ("ipod-ui.xml"), NULL);
-	g_object_unref (G_OBJECT (uimanager));
 
 	rb_ipod_load_songs (source);
 

