Doing some work picking off some of the easy failures have just committed a fix to the xsl:sort implementation. The fix was a simple change from std::sort to std::stable_sort. If the stylesheet specifies a numeric sort but there's some non-numeric data in there, then the relative order of the non-numeric bits and bobs must be maintained. I'm not sure I can see this explicitly stated in the specification text, but that's how Saxon, MSXML, and Xalan work so I would be silly not to play along.
This may be the first time I have ever used std::stable_sort, so felt I should mark the occasion in my big book of programming accomplishments.