--- trouc/xfce-mcs-manager/xfce-mcs-manager.orig 2007-11-17 20:31:18.000000000 +0100 +++ trouc/xfce-mcs-manager/xfce-mcs-manager.c 2008-01-13 22:43:18.000000000 +0100 @@ -336,6 +336,9 @@ { guint32 sigstate = 0; gsize bread = 0; +#ifdef HAVE_SIGACTION + struct sigaction act; +#endif if (G_IO_ERROR_NONE == g_io_channel_read (source, (gchar *)&sigstate, sizeof (sigstate), &bread) @@ -345,6 +348,13 @@ { case RESTART: /* unload all plugins and destroy the manager */ + /* ignore USR1 plugin until the end… */ +#ifdef HAVE_SIGACTION + act.sa_handler = SIG_IGN; + sigaction (SIGUSR1, &act, NULL); +#else /* !HAVE_SIGACTION */ + signal (SIGUSR1, SIG_IGN); +#endif unload_plugins (); mcs_manager_destroy (manager);