[Follow up to my previous post] lib/Parrot/Assembler.pm creates all string constants with chartype = 0, which, by virtue of the sequence of the enums in include/parrot/chartype.h means unicode. So all string constants are type: unicode, encoding: singlebyte.
I am not going to try and fix this one, but it does mean that the string transcoding routines are getting called when nobody expects it. There may well be other places in string.c where this causes problems; I will look at this shortly. -- Peter Gibbs EmKel Systems