Ah, the joy of writing test cases...

long_subtype_new(): fix a typo (type->ob_size instead of
tmp->ob_size).
diff --git a/Objects/longobject.c b/Objects/longobject.c
index ea0685e..25d0377 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -2095,7 +2095,7 @@
 	if (new == NULL)
 		return NULL;
 	assert(PyLong_Check(new));
-	new->ob_size = type->ob_size;
+	new->ob_size = tmp->ob_size;
 	for (i = 0; i < n; i++)
 		new->ob_digit[i] = tmp->ob_digit[i];
 	Py_DECREF(tmp);