Hmmm... in that case I'd just recommend testing all parts of the text that you can split up for being unibyte/multibyte, I programmed this for sending SMSes in GNU Emacs, since when sending for instance Czech text, or Russian, the length of the SMS is less than half the regular one... Anyhow, since currently modrana doesn't navigate in Russia due to getting stuck on multibyte text (and I'm sure this is a case in some other countries as well), can you as a temp solution, basically parse the results you get from Google by testing each respectable substring, delimited by spaces for instance, to see if it's multibyte or unibyte? This is easy to do by comparing string length and text length, if they differ, it's multibyte. If it's multibyte just throw it out and not have espeak pronounce it, and that way it's not gonna get stuck in an endless loop, and there'll be routing navigation in Russia? Temp solution, but better than not being to route at all currently...