In XEP-0114 we have: "1. Concatenate the Stream ID received from the server with the shared secret (if necessary, characters that map to predefined XML entities MUST be escaped according to the rules defined in section 4.6 of the XML specification, and any non-ASCII characters MUST be encoded according to the encoding of XML streams as specified in XMPP Core, i.e., UTF-8 as defined in RFC 3269 [6])."
The MUST specified in parenthesis is unnecessary, and all implementations I looked at didn't follow this. Implementations which don't seem to follow this include: 1. Prosody 2. jabberd2 3. ejabberd 4. Tigase 5. Openfire 6. Gloox 7. Spectrum (based on Gloox) 8. Twisted (used by PyICQt, etc) 9. Verse Seeing as how noone follows that MUST, and it's useless anyway, that whole parenthesis should be removed. -- Waqas Hussain