CharNext for unicode is broken in XP (as of 2005): http://blogs.msdn.com/michkap/archive/2008/12/16/9223301.aspx
Oh dear. I'll have to roll my own code to get to a particular location in a unicode string (for e.g. get_char/set_char). I'm also thinking: either keep length as is, and add a new service length_graphemes, or add a new parameter (count_graphemes, 1 or 0, default 0) to length service. Probably go for latter. That would count surrogate pair as a single character, and count combining characters in with the character they;re modifying.
