diff --git a/gdm-2.22.0-enable-tcp.patch b/gdm-2.22.0-enable-tcp.patch
new file mode 100644
index 0000000..3ccd311
--- /dev/null
+++ b/gdm-2.22.0-enable-tcp.patch
@@ -0,0 +1,60 @@
+diff -up gdm-2.22.0/common/gdm-settings-keys.h.enable-tcp gdm-2.22.0/common/gdm-settings-keys.h
+--- gdm-2.22.0/common/gdm-settings-keys.h.enable-tcp 2008-04-17 23:29:27.000000000 -0400
++++ gdm-2.22.0/common/gdm-settings-keys.h 2008-06-25 11:19:51.000000000 -0400
+@@ -31,6 +31,8 @@ G_BEGIN_DECLS
+ #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
+ #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
+
++#define GDM_KEY_DISALLOW_TCP "security/DisallowTCP"
++
+ #define GDM_KEY_XDMCP_ENABLE "xdmcp/Enable"
+ #define GDM_KEY_MAX_PENDING "xdmcp/MaxPending"
+ #define GDM_KEY_MAX_SESSIONS "xdmcp/MaxSessions"
+diff -up gdm-2.22.0/daemon/gdm-simple-slave.c.enable-tcp gdm-2.22.0/daemon/gdm-simple-slave.c
+--- gdm-2.22.0/daemon/gdm-simple-slave.c.enable-tcp 2008-06-25 11:19:51.000000000 -0400
++++ gdm-2.22.0/daemon/gdm-simple-slave.c 2008-06-25 11:29:44.000000000 -0400
+@@ -1003,8 +1003,18 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
+ * exist */
+ if (display_is_local) {
+ gboolean res;
++ gboolean disable_tcp;
+
+ slave->priv->server = gdm_server_new (display_name, auth_file);
++
++ disable_tcp = TRUE;
++ if (gdm_settings_client_get_boolean (GDM_KEY_DISALLOW_TCP,
++ &disable_tcp)) {
++ g_object_set (slave->priv->server,
++ "disable-tcp", disable_tcp,
++ NULL);
++ }
++
+ g_signal_connect (slave->priv->server,
+ "exited",
+ G_CALLBACK (on_server_exited),
+diff -up gdm-2.22.0/data/gdm.conf-custom.in.enable-tcp gdm-2.22.0/data/gdm.conf-custom.in
+--- gdm-2.22.0/data/gdm.conf-custom.in.enable-tcp 2008-04-17 23:29:29.000000000 -0400
++++ gdm-2.22.0/data/gdm.conf-custom.in 2008-06-25 11:19:51.000000000 -0400
+@@ -4,4 +4,6 @@
+
+ [chooser]
+
++[security]
++
+ [debug]
+diff -up gdm-2.22.0/data/gdm.schemas.in.enable-tcp gdm-2.22.0/data/gdm.schemas.in
+--- gdm-2.22.0/data/gdm.schemas.in.enable-tcp 2008-04-20 09:51:56.000000000 -0400
++++ gdm-2.22.0/data/gdm.schemas.in 2008-06-25 11:19:51.000000000 -0400
+@@ -28,6 +28,12 @@
+
+
+
++ security/DisallowTCP
++ b
++ true
++
++
++
+ xdmcp/Enable
+ b
+ false
diff --git a/gdm.spec b/gdm.spec
index bc65a0e..b7de9ab 100644
--- a/gdm.spec
+++ b/gdm.spec
@@ -16,7 +16,7 @@
Summary: The GNOME Display Manager
Name: gdm
Version: 2.22.0
-Release: 5%{?dist}
+Release: 6%{?dist}
Epoch: 1
License: GPLv2+
Group: User Interface/X
@@ -83,6 +83,8 @@ Patch3: zh.patch
Patch4: gdm-2.22.0-fix-language-selector.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=445613
Patch5: gdm-2.22.0-fix-pam-mkhomedir.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=446672
+Patch6: gdm-2.22.0-enable-tcp.patch
Patch99: gdm-2.21.8-fedora-logo.patch
%package user-switch-applet
@@ -107,6 +109,7 @@ multiple simulanteous logged in users.
%patch3 -p1 -b .chinese-time
%patch4 -p1 -b .fix-language-selector
%patch5 -p1 -b .fix-pam-mkhomedir
+%patch6 -p1 -b .enable-tcp
%patch99 -p1 -b .fedora-logo
%build
@@ -304,6 +307,9 @@ fi
%{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml
%changelog
+* Wed Jun 25 2008 Ray Strode - 1:2.22.0-6
+- Add back tcp connection option (bug 446672)
+
* Mon May 12 2008 Ray Strode - 1:2.22.0-5
- Don't require process to be running euid root when reading
~/.dmrc (bug 445613)