diff -r 5733529b297c Modules/readline.c --- a/Modules/readline.c Tue Oct 09 11:16:33 2012 -0400 +++ b/Modules/readline.c Tue Oct 09 23:08:18 2012 +0300 @@ -873,8 +873,12 @@ #endif Py_XDECREF(begidx); Py_XDECREF(endidx); - begidx = PyLong_FromLong((long) start); - endidx = PyLong_FromLong((long) end); + char *s = strdup(rl_line_buffer); + s[end] = 0; + endidx = PyLong_FromLong((long) mbstowcs(NULL, s, 0)); + s[start] = 0; + begidx = PyLong_FromLong((long) mbstowcs(NULL, s, 0)); + free(s); return completion_matches(text, *on_completion); }