For any function that expects a string as an argument, if you supply a node-set containing more than one node, then:
* XSLT 1.0 will select the string-value of the first node in the node-set
* XSLT 2.0 will report an error.
If you want the 1.0 behaviour, change
translate(mv/moid,'=',',')
to
translate((mv/moid)[1],'=',',')
The reason for changing it is that this is often a latent bug - people don't realise that they are only processing the first node.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference