The patch allows you to edit multibyte input (do not press TAB it will crash zsh). There are some bits missing, and most confusing is {lr,}prompt treatment that is still mb and not wc. No attempt was made to compute screen width, it is silently assumed to 1 for all charcaters. Conversion was mostly straightforward and just mechanical replacement. Actually I find wc stuff very easy and suitable for using as internal representation in zsh core. But this is separate topic. I added output functions just as temporary solution. In the long run I really expect them be used throughout shell code. This does not use VARARR as is, I can add it in committed patch if deemed necessary. Where can I find more info about it? Please test it without ZLE_UNICODE_SUPPORT. I may have got confused by ZLE_CHAR_T vs. ZLE_STRING_T; Peter please get a look is usage is right. Comments?