--- gdm-2.26.1/daemon/Makefile.am.orig	2009-09-28 16:05:24.000000000 +0900
+++ gdm-2.26.1/daemon/Makefile.am	2009-09-28 16:08:11.000000000 +0900
@@ -348,7 +348,10 @@ sbin_SCRIPTS =		\
 	$(NULL)
 
 gdm: $(srcdir)/gdm.in
-	sed -e 's,[@]sbindir[@],$(sbindir),g' <$(srcdir)/gdm.in >gdm
+	sed -e 's,[@]sbindir[@],$(sbindir),g' \
+	    -e 's,[@]LANG_CONFIG_FILE[@],$(LANG_CONFIG_FILE),g' \
+	    -e 's,[@]SED[@],$(SED),g' \
+	<$(srcdir)/gdm.in >gdm
 
 CLEANFILES =			\
 	gdm			\
--- gdm-2.26.1/daemon/gdm-display.c.orig	2009-09-28 16:50:45.000000000 +0900
+++ gdm-2.26.1/daemon/gdm-display.c	2009-09-28 16:53:48.000000000 +0900
@@ -46,7 +46,7 @@ static guint32 display_serial = 1;
 
 #define GDM_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_DISPLAY, GdmDisplayPrivate))
 
-#define DEFAULT_SLAVE_COMMAND LIBEXECDIR "/gdm-simple-slave"
+#define DEFAULT_SLAVE_COMMAND SBINDIR "/gdm " LIBEXECDIR "/gdm-simple-slave"
 
 struct GdmDisplayPrivate
 {
--- gdm-2.28.0/daemon/gdm.in.orig	2009-10-07 09:40:14.000000000 +0900
+++ gdm-2.28.0/daemon/gdm.in	2009-10-22 17:26:25.000000000 +0900
@@ -6,9 +6,18 @@
 
 test -f /etc/profile && . /etc/profile
 
-# Try to set LC_MESSAGES to LANG if neither LC_MESSAGES or LC_ALL is set.
-# This ensures that gdm can display in a system's default language if only
-# LANG is set.
+LANG_CONFIG_FILE=@LANG_CONFIG_FILE@
+SED=@SED@
+
+if [ "x$LANG_CONFIG_FILE" != x ] && [ "x$SED" != x ] ; then
+  if [ -f $LANG_CONFIG_FILE ] && [ -x $SED ] ; then
+    . $LANG_CONFIG_FILE
+    for l in `$SED -ne '/^#/!s/\(.*\)=.*/\1/p' $LANG_CONFIG_FILE`
+    do
+      export $l
+    done
+  fi
+fi
 
 # Make sure LANG is set
 #
@@ -21,14 +30,14 @@ then
   fi
 fi
 
-if [ -z "$LC_MESSAGES" ]
-then
-  if [ -z "$LC_ALL" ]
-  then
-    LC_MESSAGES=$LANG
-    export LC_MESSAGES
-  fi
-fi
-
-exec @sbindir@/gdm-binary "$@"
+case $1 in
+*/gdm-simple-slave)
+  EXEC_BINARY=$1
+  shift
+  exec $EXEC_BINARY $@
+  ;;
+*)
+  exec @sbindir@/gdm-binary "$@"
+  ;;
+esac
 
