diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py
index ac786bd..7b0c7b0 100644
--- a/Lib/test/test_long.py
+++ b/Lib/test/test_long.py
@@ -208,7 +208,7 @@
         digits = digits or [0]
         return '-'[:sign] + \
                {8: '0', 10: '', 16: '0x'}[base] + \
-               "".join(map(lambda i: "0123456789ABCDEF"[i], digits)) + "L"
+               "".join(map(lambda i: "0123456789abcdef"[i], digits)) + "L"
 
     def check_format_1(self, x):
         for base, mapper in (8, oct), (10, repr), (16, hex):
diff --git a/Misc/NEWS b/Misc/NEWS
index f1a0c88..8d86efd 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
 Core and builtins
 -----------------
 
+- SF bug #1224347: hex longs now print with lowercase letters just
+  like their int counterparts.
+
 - SF bug #1163563: the original fix for bug #1010677 ("thread Module
   Breaks PyGILState_Ensure()") broke badly in the case of multiple
   interpreter states; back out that fix and do a better job (see
diff --git a/Objects/longobject.c b/Objects/longobject.c
index e4fc553..1f328dd 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1090,7 +1090,7 @@
 			assert(accumbits >= basebits);
 			do {
 				char cdigit = (char)(accum & (base - 1));
-				cdigit += (cdigit < 10) ? '0' : 'A'-10;
+				cdigit += (cdigit < 10) ? '0' : 'a'-10;
 				assert(p > PyString_AS_STRING(str));
 				*--p = cdigit;
 				accumbits -= basebits;
@@ -1144,7 +1144,7 @@
 				digit nextrem = (digit)(rem / base);
 				char c = (char)(rem - nextrem * base);
 				assert(p > PyString_AS_STRING(str));
-				c += (c < 10) ? '0' : 'A'-10;
+				c += (c < 10) ? '0' : 'a'-10;
 				*--p = c;
 				rem = nextrem;
 				--ntostore;
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 176e0d2b..8a9dc52 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3753,18 +3753,12 @@
 	}
 
 	/* Fix up case for hex conversions. */
-	switch (type) {
-	case 'x':
-		/* Need to convert all upper case letters to lower case. */
+	if (type == 'X') {
+		/* Need to convert all lower case letters to upper case.
+		   and need to convert 0x to 0X (and -0x to -0X). */
 		for (i = 0; i < len; i++)
-			if (buf[i] >= 'A' && buf[i] <= 'F')
-				buf[i] += 'a'-'A';
-		break;
-	case 'X':
-		/* Need to convert 0x to 0X (and -0x to -0X). */
-		if (buf[sign + 1] == 'x')
-			buf[sign + 1] = 'X';
-		break;
+			if (buf[i] >= 'a' && buf[i] <= 'x')
+				buf[i] -= 'a'-'A';
 	}
 	*pbuf = buf;
 	*plen = len;
