Issue #12744: Fix inefficient representation of integers
between 2**31 and 2**63 on systems with a 64-bit C "long".
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index f147e3e..5952c1b 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -1540,7 +1540,7 @@
         /* out of range for int pickling */
         PyErr_Clear();
     }
-    else
+    else if (val <= 0x7fffffffL && val >= -0x80000000L)
         return save_int(self, val);
 
     if (self->proto >= 2) {