-STATIC_ASSERT(MPW_BITS >= SHIFT,
+#ifndef PyLong_SHIFT
+# define PyLong_SHIFT SHIFT
+#endif
+
+#ifndef PyLong_MASK
+# define PyLong_MASK MASK
+#endif
+
+STATIC_ASSERT(MPW_BITS >= PyLong_SHIFT,
w = (bits + MPW_BITS - 1)/MPW_BITS;
x = mp_new(w, Py_SIZE(l) < 0 ? MP_NEG : 0);
p = x->v;
for (i = 0; i < sz; i++) {
r |= (mpd)l->ob_digit[i] << b;
w = (bits + MPW_BITS - 1)/MPW_BITS;
x = mp_new(w, Py_SIZE(l) < 0 ? MP_NEG : 0);
p = x->v;
for (i = 0; i < sz; i++) {
r |= (mpd)l->ob_digit[i] << b;
PyObject *rc = 0; \
\
if (!PyArg_ParseTupleAndKeywords(arg, kw, "|l:" #name, \
PyObject *rc = 0; \
\
if (!PyArg_ParseTupleAndKeywords(arg, kw, "|l:" #name, \