diff -Nurd -x'*~' gdm-2.28.2.orig/common/Makefile.in gdm-2.28.2/common/Makefile.in
--- gdm-2.28.2.orig/common/Makefile.in	2009-12-16 18:07:09.000000000 -0500
+++ gdm-2.28.2/common/Makefile.in	2010-04-24 13:59:37.000000000 -0400
@@ -455,6 +455,7 @@
 	$(NULL)
 
 libgdmcommon_la_LIBADD = \
+	$(INTLLIBS) \
 	$(NULL)
 
 libgdmcommon_la_LDFLAGS = \
diff -Nurd -x'*~' gdm-2.28.2.orig/configure gdm-2.28.2/configure
--- gdm-2.28.2.orig/configure	2009-12-16 18:07:08.000000000 -0500
+++ gdm-2.28.2/configure	2010-04-24 14:17:20.000000000 -0400
@@ -30108,6 +30108,7 @@
 fi
 
 
+ac_pam_includes="/usr/include"
 if test "x$have_pam" = "xyes"; then
    pam_appl_h="$ac_pam_includes/security/pam_appl.h"
    { echo "$as_me:$LINENO: checking for const pam_message" >&5
@@ -32377,7 +32378,7 @@
 #define HAVE_LIBXDMCP 1
 _ACEOF
 
-		     	XDMCP_LIBS="-lXdmcp"
+		     	XDMCP_LIBS="-lXdmcp -lX11"
 		     	XDMCP_SUPPORT=yes
 fi
 
diff -Nurd -x'*~' gdm-2.28.2.orig/daemon/gdm-slave.c gdm-2.28.2/daemon/gdm-slave.c
--- gdm-2.28.2.orig/daemon/gdm-slave.c	2009-12-16 17:51:14.000000000 -0500
+++ gdm-2.28.2/daemon/gdm-slave.c	2010-04-24 13:54:15.000000000 -0400
@@ -401,36 +401,6 @@
         if (slave->priv->server_display == NULL) {
                 g_warning ("Unable to connect to display %s", slave->priv->display_name);
                 ret = FALSE;
-        } else if (slave->priv->display_is_local) {
-                XHostAddress host_entries[2] = {
-                        { FamilyServerInterpreted },
-                        { FamilyServerInterpreted }
-                };
-                XServerInterpretedAddress si_entries[2];
-
-                g_debug ("GdmSlave: Connected to display %s", slave->priv->display_name);
-                ret = TRUE;
-
-                /* Give programs run by the slave and greeter access to the display
-                 * independent of current hostname
-                 */
-                si_entries[0].type = "localuser";
-                si_entries[0].typelength = strlen ("localuser");
-                si_entries[1].type = "localuser";
-                si_entries[1].typelength = strlen ("localuser");
-
-                si_entries[0].value = "root";
-                si_entries[0].valuelength = strlen ("root");
-                si_entries[1].value = GDM_USERNAME;
-                si_entries[1].valuelength = strlen (GDM_USERNAME);
-
-                host_entries[0].address = (char *) &si_entries[0];
-                host_entries[0].length = sizeof (XServerInterpretedAddress);
-                host_entries[1].address = (char *) &si_entries[1];
-                host_entries[1].length = sizeof (XServerInterpretedAddress);
-
-                XAddHosts (slave->priv->server_display, host_entries,
-                           G_N_ELEMENTS (host_entries));
         } else {
                 g_debug ("GdmSlave: Connected to display %s", slave->priv->display_name);
                 ret = TRUE;
diff -Nurd -x'*~' gdm-2.28.2.orig/daemon/gdm-xdmcp-display-factory.c gdm-2.28.2/daemon/gdm-xdmcp-display-factory.c
--- gdm-2.28.2.orig/daemon/gdm-xdmcp-display-factory.c	2009-12-16 17:51:14.000000000 -0500
+++ gdm-2.28.2/daemon/gdm-xdmcp-display-factory.c	2010-04-24 12:58:15.000000000 -0400
@@ -373,9 +373,6 @@
                 if (ai->ai_flags & AI_NUMERICHOST) {
                         g_string_append (str, "numhost ");
                 }
-                if (ai->ai_flags & AI_NUMERICSERV) {
-                        g_string_append (str, "numserv ");
-                }
                 if (ai->ai_flags & AI_V4MAPPED) {
                         g_string_append (str, "v4mapped ");
                 }
diff -Nurd -x'*~' gdm-2.28.2.orig/gui/simple-chooser/Makefile.in gdm-2.28.2/gui/simple-chooser/Makefile.in
--- gdm-2.28.2.orig/gui/simple-chooser/Makefile.in	2009-12-16 18:07:11.000000000 -0500
+++ gdm-2.28.2/gui/simple-chooser/Makefile.in	2010-04-24 14:17:02.000000000 -0400
@@ -354,6 +354,7 @@
 	$(EXTRA_CHOOSER_LIBS)   	\
 	$(SIMPLE_CHOOSER_LIBS)		\
 	$(XDMCP_LIBS)			\
+	$(XLIB_LIBS)			\
 	$(NULL)
 
 gdm_host_chooser_SOURCES = \
@@ -372,6 +373,7 @@
 	$(EXTRA_CHOOSER_LIBS)   	\
 	$(SIMPLE_CHOOSER_LIBS)		\
 	$(XDMCP_LIBS)			\
+	$(XLIB_LIBS)			\
 	$(NULL)
 
 EXTRA_DIST = \
diff -Nurd -x'*~' gdm-2.28.2.orig/gui/simple-greeter/Makefile.in gdm-2.28.2/gui/simple-greeter/Makefile.in
--- gdm-2.28.2.orig/gui/simple-greeter/Makefile.in	2009-12-16 18:07:11.000000000 -0500
+++ gdm-2.28.2/gui/simple-greeter/Makefile.in	2010-04-24 14:44:30.000000000 -0400
@@ -500,6 +500,7 @@
 	$(NULL)
 
 libgdmuser_la_LIBADD = \
+	$(INTLLIBS)			\
 	$(NULL)
 
 libgdmuser_la_LDFLAGS = \
@@ -602,6 +603,7 @@
 
 test_filesystem_type_LDADD = \
 	$(COMMON_LIBS)			\
+	$(INTLLIBS)			\
 	$(NULL)
 
 test_language_chooser_SOURCES = \
@@ -625,6 +627,7 @@
 
 test_language_chooser_LDADD = \
 	$(GTK_LIBS)		\
+	$(INTLLIBS)		\
 	$(NULL)
 
 test_layout_chooser_SOURCES = \
@@ -648,6 +651,7 @@
 test_layout_chooser_LDADD = \
 	$(GTK_LIBS)			\
 	$(LIBXKLAVIER_LIBS)		\
+	$(INTLLIBS)			\
 	$(NULL)
 
 test_languages_SOURCES = \
@@ -659,6 +663,7 @@
 
 test_languages_LDADD = \
 	$(GTK_LIBS)		\
+	$(INTLLIBS)		\
 	$(NULL)
 
 test_sessions_SOURCES = \
@@ -669,6 +674,7 @@
 
 test_sessions_LDADD = \
 	$(GTK_LIBS)		\
+	$(INTLLIBS)		\
 	$(NULL)
 
 test_user_chooser_SOURCES = \
diff -Nurd -x'*~' gdm-2.28.2.orig/gui/simple-greeter/gdm-user-manager.c gdm-2.28.2/gui/simple-greeter/gdm-user-manager.c
--- gdm-2.28.2.orig/gui/simple-greeter/gdm-user-manager.c	2009-12-16 17:51:14.000000000 -0500
+++ gdm-2.28.2/gui/simple-greeter/gdm-user-manager.c	2010-04-24 13:08:15.000000000 -0400
@@ -1372,11 +1372,7 @@
         new_users = NULL;
 
         errno = 0;
-        fp = fopen (PATH_PASSWD, "r");
-        if (fp == NULL) {
-                g_warning ("Unable to open %s: %s", PATH_PASSWD, g_strerror (errno));
-                goto out;
-        }
+        setpwent();
 
         g_hash_table_foreach (manager->priv->users, listify_hash_values_hfunc, &old_users);
         g_slist_foreach (old_users, (GFunc) g_object_ref, NULL);
@@ -1390,7 +1386,7 @@
                 }
         }
 
-        for (pwent = fgetpwent (fp); pwent != NULL; pwent = fgetpwent (fp)) {
+        for (pwent = getpwent(); pwent != NULL; pwent = getpwent()) {
                 GdmUser *user;
 
                 user = NULL;
@@ -1461,7 +1457,6 @@
  out:
         /* Cleanup */
 
-        fclose (fp);
 
         g_slist_foreach (new_users, (GFunc) g_object_thaw_notify, NULL);
         g_slist_foreach (new_users, (GFunc) g_object_unref, NULL);
diff -Nurd -x'*~' gdm-2.28.2.orig/gui/simple-greeter/libnotificationarea/Makefile.in gdm-2.28.2/gui/simple-greeter/libnotificationarea/Makefile.in
--- gdm-2.28.2.orig/gui/simple-greeter/libnotificationarea/Makefile.in	2009-12-16 18:07:11.000000000 -0500
+++ gdm-2.28.2/gui/simple-greeter/libnotificationarea/Makefile.in	2010-04-24 15:26:15.000000000 -0400
@@ -344,6 +344,7 @@
 
 libnotificationarea_la_LIBADD = \
 	$(GTK_LIBS)				\
+	$(XLIB_LIBS)				\
 	$(NULL)
 
 libnotificationarea_la_LDFLAGS = \
diff -Nurd -x'*~' gdm-2.28.2.orig/utils/Makefile.in gdm-2.28.2/utils/Makefile.in
--- gdm-2.28.2.orig/utils/Makefile.in	2009-12-16 18:07:12.000000000 -0500
+++ gdm-2.28.2/utils/Makefile.in	2010-04-24 15:24:50.000000000 -0400
@@ -340,6 +340,7 @@
 gdmflexiserver_LDADD = \
 	$(GTK_LIBS)		\
 	$(COMMON_LIBS)		\
+	$(INTLLIBS)		\
 	$(NULL)
 
 gdm_screenshot_SOURCES = \
@@ -350,6 +351,8 @@
 	$(GTK_LIBS)		\
 	$(CANBERRA_GTK_LIBS)	\
 	$(COMMON_LIBS)		\
+	$(INTLLIBS)		\
+	$(XLIB_LIBS)		\
 	$(NULL)
 
 EXTRA_DIST = \
