_PyLong_AsByteArray:  added assert that the input is normalized.  This is
outside the function's control, but is crucial to correct operation.
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 3c22470..f8a9129 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -358,7 +358,11 @@
 		pincr = -1;
 	}
 
-	/* Copy over all the Python digits. */
+	/* Copy over all the Python digits.
+	   It's crucial that every Python digit except for the MSD contribute
+	   exactly SHIFT bits to the total, so first assert that the long is
+	   normalized. */
+	assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
 	j = 0;
 	accum = 0;
 	accumbits = 0;