diff -u --recursive gnome-session-2.4.0-vanilla/gnome-session/main.c gnome-session-2.4.0/gnome-session/main.c
--- gnome-session-2.4.0-vanilla/gnome-session/main.c	2003-08-13 07:58:52.000000000 -0500
+++ gnome-session-2.4.0/gnome-session/main.c	2003-11-01 16:51:20.000000000 -0600
@@ -481,6 +481,23 @@
 #endif
 }
 
+/* Ensure gconfd-2 is shutdown when a user logs out so the user's $HOME
+ * may be unmounted if appropriate
+ */
+static void gconfd_shutdown (void)
+{
+  char *argv[] = { "gconftool-2", "--shutdown", NULL };
+  gnome_execute_async (NULL, 2, argv);
+}
+
+/* Ensure bonobo-slay is run and bonobo-activation-server is stopped
+ * when a user logs out so the user's $HOME may be unmounted 
+ */
+static void bonobo_slay (void) {
+  char *argv[] = { "bonobo-slay", NULL };
+  gnome_execute_async (NULL, 1, argv);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -634,6 +651,10 @@
 
   clean_ice ();
 
+  /* the following could probably be done in a better way. */
+  gconfd_shutdown (); /* in case home needs to be unmounted on logout */
+  bonobo_slay (); /* in case home needs to be unmounted on logout */
+
   /* If a logout command was set, the following will not return */
   execute_logout ();
   
