--- /dev/null
+From d161c173088ce82ea11a914ce62c5b77af9f4f9f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Wed, 6 Nov 2013 18:21:32 +0100
+Subject: [PATCH] s3-libnetjoin: use upper-case realm when composing default
+ upn.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In case we are about to generate a keytab during the join make sure the default
+upn we create is usable with kinit -k.
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ source3/libnet/libnet_join.c | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
+index 2dcb920..b84fcd6 100644
+--- a/source3/libnet/libnet_join.c
++++ b/source3/libnet/libnet_join.c
+@@ -449,10 +449,25 @@ static ADS_STATUS libnet_join_set_machine_upn(TALLOC_CTX *mem_ctx,
+ }
+
+ if (!r->in.upn) {
++ char *realm = r->out.dns_domain_name;
++
++ /* in case we are about to generate a keytab during the join
++ * make sure the default upn we create is usable with kinit -k.
++ * gd */
++
++ if (USE_KERBEROS_KEYTAB) {
++ realm = talloc_strdup_upper(mem_ctx,
++ r->out.dns_domain_name);
++ }
++
++ if (!realm) {
++ return ADS_ERROR(LDAP_NO_MEMORY);
++ }
++
+ r->in.upn = talloc_asprintf(mem_ctx,
+ "host/%s@%s",
+ r->in.machine_name,
+- r->out.dns_domain_name);
++ realm);
+ if (!r->in.upn) {
+ return ADS_ERROR(LDAP_NO_MEMORY);
+ }
+--
+1.8.3.1
+