I just tried it client-side in Firefox 3 (after changing xsl:when to xsl:if because it was a single test) and all was well, except that it came out as attrfaw=4535.
I think you should be aware of how fn::translate() works. Check out this quote from the W3C XPath documentation on it:
If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate("--aaa--","abc-","ABC") returns "AAA".
In other words, because your replacement is only one character long, the only character that is recognized is  . Everything else in the second string is simply removed from @Name. I'm not sure if that is what you wanted, but I figured you might benefit from the information if you didn't know.