I think I have found another bug in the XIFF code. In Room.as, in method leave(), the roster is cleared and the Message, Presence, and Disconnect event listeners are removed from the connection object. Since the LEAVE event is produced as a result of receiving the presence acknowledgment from the server, the listeners have been removed already by the time the acknowledgement arrives … thus, no ROOM_LEAVE event. Would it not be better to remove the listeners after the presence acknowledgement is received and ROOM_LEAVE has been dispatched?
Again, I may be forced to modify the code myself to fix the problem, but it would be good if it was fixed in the baseline so I (and others?) don’'t have to merge our changes into the next release.