diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 740cbe2..8e11536 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -2575,8 +2575,16 @@
 	numdigits = len - numnondigits;
 	assert(numdigits > 0);
 
-	/* Get rid of base marker unless F_ALT */
-	if ((flags & F_ALT) == 0) {
+	/* Get rid of base marker unless F_ALT.  Even if F_ALT, leading 0x
+	 * must be stripped if the *value* is 0.
+	 */
+	if ((flags & F_ALT) == 0 ||
+	    ((flags & F_ALT) &&
+	     (type == 'x' || type == 'X') &&
+	     numdigits == 1 &&
+	     !sign &&
+	     buf[2] == '0'
+	    )) {
 		/* Need to skip 0x, 0X or 0. */
 		int skipped = 0;
 		switch (type) {
@@ -3015,17 +3023,21 @@
 					width--;
 			}
 			if ((flags & F_ALT) && (c == 'x' || c == 'X')) {
+				/* There's a base marker ("0x" or "0X") if and
+				 * only if the value is non-zero.
+				 */
 				assert(pbuf[0] == '0');
-				assert(pbuf[1] == c);
-				if (fill != ' ') {
-					*res++ = *pbuf++;
-					*res++ = *pbuf++;
+				if (pbuf[1] == c) {
+					if (fill != ' ') {
+						*res++ = *pbuf++;
+						*res++ = *pbuf++;
+					}
+					rescnt -= 2;
+					width -= 2;
+					if (width < 0)
+						width = 0;
+					len -= 2;
 				}
-				rescnt -= 2;
-				width -= 2;
-				if (width < 0)
-					width = 0;
-				len -= 2;
 			}
 			if (width > len && !(flags & F_LJUST)) {
 				do {
@@ -3037,9 +3049,8 @@
 				if (sign)
 					*res++ = sign;
 				if ((flags & F_ALT) &&
-				    (c == 'x' || c == 'X')) {
-					assert(pbuf[0] == '0');
-					assert(pbuf[1] == c);
+				    (c == 'x' || c == 'X') &&
+				    pbuf[1] == c) {
 					*res++ = *pbuf++;
 					*res++ = *pbuf++;
 				}
