Index: gdm-2.20.3/daemon/gdm.c =================================================================== --- gdm-2.20.3.orig/daemon/gdm.c 2008-01-07 20:39:37.000000000 +0100 +++ gdm-2.20.3/daemon/gdm.c 2008-01-09 18:44:49.000000000 +0100 @@ -1081,6 +1081,12 @@ d->sleep_before_run = 3; } else if (d->x_faileds >= 3) { gdm_debug ("gdm_child_action: dealing with X crashes"); + if ( gdm_config_value_get_bool (GDM_KEY_NOXKEEPSCRASHING)) { + gdm_display_unmanage (d); + gdm_start_first_unborn_local (3 /* delay */); + break; + } + if ( ! deal_with_x_crashes (d)) { gdm_debug ("gdm_child_action: Aborting display"); /* an original way to deal with these things: Index: gdm-2.20.3/daemon/gdm-daemon-config-keys.h =================================================================== --- gdm-2.20.3.orig/daemon/gdm-daemon-config-keys.h 2008-01-07 20:39:37.000000000 +0100 +++ gdm-2.20.3/daemon/gdm-daemon-config-keys.h 2008-01-09 18:43:44.000000000 +0100 @@ -145,6 +145,7 @@ #define GDM_KEY_CONFIGURATOR "daemon/Configurator=" SBINDIR "/gdmsetup --disable-sound --disable-crash-dialog" #define GDM_KEY_CONFIG_AVAILABLE "greeter/ConfigAvailable=true" #define GDM_KEY_CHOOSER_BUTTON "greeter/ChooserButton=true" +#define GDM_KEY_NOXKEEPSCRASHING "daemon/NoXKeepsCrashing=false" #define GDM_KEY_TITLE_BAR "greeter/TitleBar=true" #define GDM_DEFAULT_WELCOME_MSG "Welcome" #define GDM_DEFAULT_REMOTE_WELCOME_MSG "Welcome to %n" Index: gdm-2.20.3/gui/greeter/greeter_configuration.h =================================================================== --- gdm-2.20.3.orig/gui/greeter/greeter_configuration.h 2008-01-07 20:39:03.000000000 +0100 +++ gdm-2.20.3/gui/greeter/greeter_configuration.h 2008-01-09 18:43:44.000000000 +0100 @@ -25,6 +25,7 @@ extern gboolean GdmShowXtermFailsafeSession; extern gboolean GdmShowLastSession; extern gboolean GdmSystemMenu; +extern gboolean GdmNoXKeepsCrashing; extern gboolean GdmConfigAvailable; extern gboolean GdmChooserButton; extern gchar *GdmHalt;