diff -Nur gnome-panel-2.29.5.1/gnome-panel/applet.c gnome-panel-2.29.5.1.ubuntu/gnome-panel/applet.c
--- gnome-panel-2.29.5.1/gnome-panel/applet.c	2010-01-12 19:04:55.000000000 +0100
+++ gnome-panel-2.29.5.1.ubuntu/gnome-panel/applet.c	2010-01-27 15:09:55.000000000 +0100
@@ -1031,9 +1031,9 @@
 }
 
 void
-panel_applet_load_queued_applets (void)
+panel_applet_load_queued_applets (gboolean initial_load)
 {
-	if (!panel_applets_to_load) {
+	if (!panel_applets_to_load && initial_load) {
 		panel_applet_queue_initial_unhide_toplevels (NULL);
 		return;
         } else {
@@ -1049,7 +1049,10 @@
 					      (GCompareFunc) panel_applet_compare);
 
 	if ( ! panel_applet_have_load_idle) {
-		g_idle_add (panel_applet_load_idle_handler, NULL);
+		if (initial_load == TRUE)
+			g_idle_add_full (G_PRIORITY_HIGH_IDLE, panel_applet_load_idle_handler, NULL, NULL);
+		else
+			g_idle_add (panel_applet_load_idle_handler, NULL);
 		panel_applet_have_load_idle = TRUE;
 	}
 }
diff -Nur gnome-panel-2.29.5.1/gnome-panel/applet.h gnome-panel-2.29.5.1.ubuntu/gnome-panel/applet.h
--- gnome-panel-2.29.5.1/gnome-panel/applet.h	2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.29.5.1.ubuntu/gnome-panel/applet.h	2010-01-27 15:08:36.000000000 +0100
@@ -70,7 +70,7 @@
 					int              position,
 					gboolean         right_stick,
 					gboolean         locked);
-void panel_applet_load_queued_applets  (void);
+void panel_applet_load_queued_applets  (gboolean initial_load);
 gboolean panel_applet_on_load_queue    (const char *id);
 
 
diff -Nur gnome-panel-2.29.5.1/gnome-panel/panel-profile.c gnome-panel-2.29.5.1.ubuntu/gnome-panel/panel-profile.c
--- gnome-panel-2.29.5.1/gnome-panel/panel-profile.c	2010-01-14 04:26:27.000000000 +0100
+++ gnome-panel-2.29.5.1.ubuntu/gnome-panel/panel-profile.c	2010-01-27 14:59:42.000000000 +0100
@@ -1831,7 +1831,7 @@
 	}
 
 	if (!loading_queued_applets)
-		panel_applet_load_queued_applets ();
+		panel_applet_load_queued_applets (FALSE);
 }
 
 static void
@@ -2241,7 +2241,7 @@
 	g_slist_free (sublist);
 	g_slist_free (object_ids);
 
-	panel_applet_load_queued_applets ();
+	panel_applet_load_queued_applets (FALSE);
 }
 
 static void
@@ -2538,7 +2538,7 @@
 
 	panel_profile_ensure_toplevel_per_screen (client, PANEL_CONFIG_DIR);
 
-	panel_applet_load_queued_applets ();
+	panel_applet_load_queued_applets (TRUE);
 }
 
 static gboolean
