The xsl:value-of instruction will sometimes generate multiple text nodes, rather than a single concatenated text node. This happens when the select expression selects multiple nodes (and various other conditions are satisfied). Usually this will go unnoticed because the multiple text nodes are concatenated together (for example, as part of the content of an element). However, if the result of the xsl:value-of instruction is returned directly from a function, or forms the value of a variable, then incorrect results may be returned, or a spurious type error may occur.
The bug is a consequence of an optimization introduced in 9.2; the patch to ValueOf.process() removes this optimization.