--- gdm-2.20.7.ori/daemon/gdm.c	2008-06-30 19:53:13.000000000 +0200
+++ gdm-2.20.7/daemon/gdm.c	2008-08-10 12:21:02.000000000 +0200
@@ -1025,9 +1025,7 @@ gdm_cleanup_children (void)
 		d->theme_name = NULL;
 	}
 
- start_autopsy:
 
-	/* Autopsy */
 	switch (status) {
 
 	case DISPLAY_ABORT:		/* Bury this display for good */
@@ -1045,25 +1043,16 @@ gdm_cleanup_children (void)
 
 	case DISPLAY_REBOOT:	/* Restart machine */
 		restart_machine ();
-
-		status = DISPLAY_REMANAGE;
-		goto start_autopsy;
 		break;
 
 	case DISPLAY_HALT:	/* Halt machine */
 		halt_machine ();
-
-		status = DISPLAY_REMANAGE;
-		goto start_autopsy;
 		break;
 
 	case DISPLAY_SUSPEND:	/* Suspend machine */
 		/* XXX: this is ugly, why should there be a suspend like this,
 		 * see GDM_SOP_SUSPEND_MACHINE */
 		suspend_machine ();
-
-		status = DISPLAY_REMANAGE;
-		goto start_autopsy;
 		break;
 
 	case DISPLAY_RESTARTGDM:
@@ -1303,7 +1292,6 @@ mainloop_sig_callback (int sig, gpointer
 		case SIGINT:
 		case SIGTERM:
 			gdm_debug ("mainloop_sig_callback: Got TERM/INT. Going down!");
-			gdm_final_cleanup ();
 			exit (EXIT_SUCCESS);
 			break;
 
