Index: panel-session.c
===================================================================
--- panel-session.c	(révision 11369)
+++ panel-session.c	(copie de travail)
@@ -55,13 +55,15 @@ panel_session_init (void)
 {
 	GnomeClient *client;
 
+	client = gnome_master_client ();
+
+	gnome_client_connect (client);
+
 	/* We don't want the WM to try and save/restore our
 	 * window position
 	 */
 	gdk_set_sm_client_id (NULL);
 
-	client = gnome_master_client ();
-
         if (!getenv ("GNOME_PANEL_DEBUG"))
                 gnome_client_set_restart_style (client, GNOME_RESTART_IMMEDIATELY);
 
Index: main.c
===================================================================
--- main.c	(révision 11369)
+++ main.c	(copie de travail)
@@ -14,6 +14,7 @@
 
 #include <glib/gi18n.h>
 #include <libgnomeui/gnome-authentication-manager.h>
+#include <libgnomeui/gnome-client.h>
 #include <libgnomeui/gnome-ui-init.h>
 
 #include <libpanel-util/panel-cleanup.h>
@@ -63,6 +64,7 @@ main (int argc, char **argv)
 	program = gnome_program_init ("gnome-panel", VERSION,
 				      LIBGNOMEUI_MODULE,
 				      argc, argv,
+				      GNOME_CLIENT_PARAM_SM_CONNECT, FALSE,
 				      GNOME_PARAM_GOPTION_CONTEXT, context,
 				      GNOME_PROGRAM_STANDARD_PROPERTIES,
 				      NULL);
@@ -81,8 +83,6 @@ main (int argc, char **argv)
 	panel_multiscreen_init ();
 	panel_init_stock_icons_and_items ();
 
-	panel_session_init ();
-
 	gconf_client_add_dir (panel_gconf_get_client (),
 			      "/desktop/gnome/interface",
 			      GCONF_CLIENT_PRELOAD_NONE,
@@ -99,6 +99,12 @@ main (int argc, char **argv)
 
 	xstuff_init ();
 
+	/* Flush to make sure our struts are seen by everyone starting
+	 * immediate after (eg, the nautilus desktop). */
+	gdk_flush ();
+
+	panel_session_init ();
+
 	gtk_main ();
 
 	panel_lockdown_finalize ();
