diff -r 20c9290a5de4 Objects/bytearrayobject.c --- a/Objects/bytearrayobject.c Sun Jun 21 13:57:30 2015 -0700 +++ b/Objects/bytearrayobject.c Tue Jun 23 09:47:28 2015 +0200 @@ -2369,8 +2369,8 @@ return NULL; } if (where < 0) - where += Py_SIZE(self); - if (where < 0 || where >= Py_SIZE(self)) { + where += n; + if (where < 0 || where >= n) { PyErr_SetString(PyExc_IndexError, "pop index out of range"); return NULL; } @@ -2378,7 +2378,7 @@ return NULL; value = self->ob_bytes[where]; - memmove(self->ob_bytes + where, self->ob_bytes + where + 1, n - where); + memmove(self->ob_bytes + where, self->ob_bytes + where + 1, n - where - 1); if (PyByteArray_Resize((PyObject *)self, n - 1) < 0) return NULL; @@ -2409,7 +2409,7 @@ if (!_canresize(self)) return NULL; - memmove(self->ob_bytes + where, self->ob_bytes + where + 1, n - where); + memmove(self->ob_bytes + where, self->ob_bytes + where + 1, n - where - 1); if (PyByteArray_Resize((PyObject *)self, n - 1) < 0) return NULL;