That was the reason why I starting fixing the decoders. But while I were at it, I also made them comply to the standard in other ways, such as not allowing surrogates. (The "extended" flag to utf8_to_string and string_to_utf8 are of course not affected by that, since they are intended to handle any char value that can be represented in a pike string.)