diff -Naur gdm-2.24.0.orig/common/gdm-settings-keys.h gdm-2.24.0.new/common/gdm-settings-keys.h
--- gdm-2.24.0.orig/common/gdm-settings-keys.h	2008-09-22 19:01:22.000000000 +0200
+++ gdm-2.24.0.new/common/gdm-settings-keys.h	2008-11-28 21:47:36.000000000 +0100
@@ -32,6 +32,7 @@
 #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable"
 #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
 #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
+#define GDM_KEY_NO_CONSOLE "daemon/NoConsole"
 
 #define GDM_KEY_DISALLOW_TCP "security/DisallowTCP"
 
diff -Naur gdm-2.24.0.orig/daemon/gdm-manager.c gdm-2.24.0.new/daemon/gdm-manager.c
--- gdm-2.24.0.orig/daemon/gdm-manager.c	2008-11-28 21:33:49.000000000 +0100
+++ gdm-2.24.0.new/daemon/gdm-manager.c	2008-11-28 22:11:02.000000000 +0100
@@ -70,7 +70,8 @@
 
 enum {
         PROP_0,
-        PROP_XDMCP_ENABLED
+        PROP_XDMCP_ENABLED,
+	PROP_NO_CONSOLE
 };
 
 enum {
@@ -142,7 +143,7 @@
 {
         g_debug ("GdmManager: GDM starting to manage");
 
-        if (! manager->priv->wait_for_go) {
+        if (!manager->priv->no_console && ! manager->priv->wait_for_go) {
                 gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->local_factory));
         }
 
@@ -166,7 +167,8 @@
 
                 if (! wait_for_go) {
                         /* we got a go */
-                        gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->local_factory));
+			if (!manager->priv->no_console)
+                        	gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->local_factory));
 
 #ifdef HAVE_LIBXDMCP
                         if (manager->priv->xdmcp_enabled && manager->priv->xdmcp_factory != NULL) {
@@ -274,6 +276,15 @@
         manager->priv->xdmcp_enabled = enabled;
 }
 
+void
+gdm_manager_set_no_console (GdmManager *manager,
+                               gboolean    no_console)
+{
+        g_return_if_fail (GDM_IS_MANAGER (manager));
+
+        manager->priv->no_console = no_console;
+}
+
 static void
 gdm_manager_set_property (GObject      *object,
                           guint         prop_id,
@@ -288,6 +299,9 @@
         case PROP_XDMCP_ENABLED:
                 gdm_manager_set_xdmcp_enabled (self, g_value_get_boolean (value));
                 break;
+        case PROP_NO_CONSOLE:
+                gdm_manager_set_no_console (self, g_value_get_boolean (value));
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
@@ -308,6 +322,9 @@
         case PROP_XDMCP_ENABLED:
                 g_value_set_boolean (value, self->priv->xdmcp_enabled);
                 break;
+        case PROP_NO_CONSOLE:
+                g_value_set_boolean (value, self->priv->no_console);
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
diff -Naur gdm-2.24.0.orig/daemon/gdm-manager.h gdm-2.24.0.new/daemon/gdm-manager.h
--- gdm-2.24.0.orig/daemon/gdm-manager.h	2008-07-10 17:07:42.000000000 +0200
+++ gdm-2.24.0.new/daemon/gdm-manager.h	2008-11-28 21:50:19.000000000 +0100
@@ -68,6 +68,8 @@
 
 void                gdm_manager_set_xdmcp_enabled              (GdmManager *manager,
                                                                 gboolean    enabled);
+void                gdm_manager_set_no_console                 (GdmManager *manager,
+                                                                gboolean    no_console);
 gboolean            gdm_manager_get_displays                   (GdmManager *manager,
                                                                 GPtrArray **displays,
                                                                 GError    **error);
diff -Naur gdm-2.24.0.orig/daemon/main.c gdm-2.24.0.new/daemon/main.c
--- gdm-2.24.0.orig/daemon/main.c	2008-08-21 06:31:47.000000000 +0200
+++ gdm-2.24.0.new/daemon/main.c	2008-12-22 14:30:18.000000000 +0100
@@ -507,6 +507,7 @@
         int                 ret;
         gboolean            res;
         gboolean            xdmcp_enabled;
+        gboolean            no_console;
         GdmSignalHandler   *signal_handler;
         static gboolean     debug            = FALSE;
         static gboolean     do_timed_exit    = FALSE;
@@ -608,6 +609,10 @@
                 goto out;
         }
 
+        no_console = FALSE;
+        gdm_settings_direct_get_boolean (GDM_KEY_NO_CONSOLE, &no_console);
+        gdm_manager_set_no_console (manager, no_console);
+
         xdmcp_enabled = FALSE;
         gdm_settings_direct_get_boolean (GDM_KEY_XDMCP_ENABLE, &xdmcp_enabled);
         gdm_manager_set_xdmcp_enabled (manager, xdmcp_enabled);
diff -Naur gdm-2.24.0.orig/data/gdm.schemas.in.in gdm-2.24.0.new/data/gdm.schemas.in.in
--- gdm-2.24.0.orig/data/gdm.schemas.in.in	2008-09-22 19:01:23.000000000 +0200
+++ gdm-2.24.0.new/data/gdm.schemas.in.in	2008-11-28 21:46:24.000000000 +0100
@@ -36,6 +36,11 @@
       <signature>i</signature>
       <default>30</default>
     </schema>
+    <schema>
+      <key>daemon/NoConsole</key>
+      <signature>b</signature>
+      <default>false</default>
+    </schema>
 
     <schema>
       <key>security/DisallowTCP</key>
