This is just about fixed now, but I need to test whether bookmarking a room from outside the MUC list adds it to the list if it's not there already. Currently, I can't do this because jivesoftware.com/igniterealtime.org aren't running the version of Openfire that returns JIDs in room searches.
Stuff not updating properly, multiple bookmarks when viewed from other clients, and packets like this:
<iq type="set" id="iq_35"><query xmlns="jabber:iq:private"><storage xmlns="storage:bookmarks"><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /><conference name="conference.localhost" jid="conference.localhost" /></storage></query></iq>