Index: Python/ceval.c =================================================================== --- Python/ceval.c (revision 69382) +++ Python/ceval.c (working copy) @@ -1283,7 +1283,11 @@ case BINARY_MODULO: w = POP(); v = TOP(); - x = PyNumber_Remainder(v, w); + /* CheckExact is faster than Check. */ + if (PyString_CheckExact(v) || PyString_Check(v)) + x = PyString_Format(v, w); + else + x = PyNumber_Remainder(v, w); Py_DECREF(v); Py_DECREF(w); SET_TOP(x);