>> + if (start >= length || end < start) { >> + assert(end == length); >> + return PyUnicode_New(0, 0); >> + } > > That assert doesn't look right. Oh, you're right. I added it for the first case: start>=length. But the assertion is really useless, I removed it. Thanks! Victor