Index: Objects/rangeobject.c =================================================================== --- Objects/rangeobject.c (revision 63950) +++ Objects/rangeobject.c (working copy) @@ -129,6 +129,14 @@ return rtn; } +/* Pickling support */ +static PyObject * +range_getnewargs(rangeobject *r) +{ + long stop = r->start + r->len * r->step; + return Py_BuildValue("(iii)", r->start, stop, r->step); +} + static PySequenceMethods range_as_sequence = { (lenfunc)range_length, /* sq_length */ 0, /* sq_concat */ @@ -145,6 +153,7 @@ static PyMethodDef range_methods[] = { {"__reversed__", (PyCFunction)range_reverse, METH_NOARGS, reverse_doc}, + {"__getnewargs__", (PyCFunction)range_getnewargs, METH_NOARGS}, {NULL, NULL} /* sentinel */ };