While implementing stream compression I noted it says that "Negotiation of stream compression SHOULD be completed before authentication via SASL". This is also the way ejabberd 1.1.2 and OpenFire 3.3.2 works.
Sander brought my attention to a project by Armando Jagucki to produce a PEP server component for OpenFire and his recent advances. Since there is a test server at jabber.esoteriq.net I wasn't late to test it.
As a client is being developed it can be difficult to figure out beforehand what it will eventually look like. I used to have a strategy to put almost all new menu entries in the "Jabber" menu, which clearly created a total mess after a while.
While I was implementing JID Escaping I came across an inconsistency. It is easy to see that it wont work as a 1-to-1 mapping for general JIDs since the presence of the "@" and "/" characters to be esacped makes it impossible to uniquely decompose a JID into its node+domain+resource constituents.