 	import org.igniterealtime.xiff.events.*;
 
 	/**
-	 * Dispatched when the room subject changes.
-	 *
-	 * @eventType org.igniterealtime.xiff.events.RoomEvent.SUBJECT_CHANGE
-	 */
-	[Event( name="subjectChange",type="org.igniterealtime.xiff.events.RoomEvent" )]
-	/**
-	 * Dispatched whenever a new message intented for all room occupants is received. The
-	 * <code>RoomEvent</code> class will contain an attribute <code>data</code> with the
-	 * group message as an instance of the <code>Message</code> class.
-	 *
-	 * @eventType org.igniterealtime.xiff.events.RoomEvent.GROUP_MESSAGE
-	 */
-	[Event( name="groupMessage",type="org.igniterealtime.xiff.events.RoomEvent" )]
-	/**
-	 * Dispatched whenever a new private message is received. The <code>RoomEvent</code> class
-	 * contains an attribute <code>data</code> with the private message as an instance of the
-	 * <code>Message</code> class.
-	 *
-	 * @eventType org.igniterealtime.xiff.events.RoomEvent.PRIVATE_MESSAGE
-	 */
-	[Event( name="privateMessage",type="org.igniterealtime.xiff.events.RoomEvent" )]
-	/**
-	 * Dispatched when you have entered the room and messages that are sent
-	 * will be displayed to other users. The room's role and affiliation will
-	 * be visible from this point forward.
-	 *
-	 * @eventType org.igniterealtime.xiff.events.RoomEvent.ROOM_JOIN
-	 */
-	[Event( name="roomJoin",type="org.igniterealtime.xiff.events.RoomEvent" )]
-	/**
-	 * Dispatched when the server acknoledges that you have the left the room.
-	 *
-	 * @eventType org.igniterealtime.xiff.events.RoomEvent.ROOM_LEAVE
-	 */
-	[Event( name="roomLeave",type="org.igniterealtime.xiff.events.RoomEvent" )]
+	 * Dispatched when the active, affiliation, or role property changes.
+	 *
+	 * @eventType org.igniterealtime.xiff.events.PropertyChangeEvent.CHANGE
+	 */
+	[Event( name="change", type="org.igniterealtime.xiff.events.PropertyChangeEvent" )]
+	/**
+	 * Dispatched when an administration action failed.
+	 *
+	 * @eventType org.igniterealtime.xiff.events.RoomEvent.ADMIN_ERROR
+	 * @see	org.igniterealtime.xiff.core.XMPPConnection.error
+	 */
+	[Event( name="adminError", type="org.igniterealtime.xiff.events.RoomEvent" )]
+	/**
+	 * Dispatched when an affiliation change has completed.
+	 *
+	 * @eventType org.igniterealtime.xiff.events.RoomEvent.AFFILIATION_CHANGE_COMPLETE
+	 */
+	[Event( name="affiliationChangeComplete", type="org.igniterealtime.xiff.events.RoomEvent" )]
 	/**
 	 * Dispatched when an affiliation list has been requested. The event object contains an
 	 * array of <code>MUCItems</code> containing the JID and affiliation properties.

	 * @see	#configure
	 * @eventType org.igniterealtime.xiff.events.RoomEvent.CONFIGURE_ROOM
	 */
	[Event( name="configureRoom",type="org.igniterealtime.xiff.events.RoomEvent" )]
	/**
	 * Dispatched when a room configuration form is complete.
	 *


			if ( isThisUser( aPresence.from.unescaped ))
			{
				var oldAffiliation:String = _affiliation;
				_affiliation = item.affiliation;
				if( _affiliation != oldAffiliation ) dispatchChangeEvent( "affiliation", _affiliation, oldAffiliation );

				var oldRole:String = _role;
				_role = item.role;
				if( _role != oldRole ) dispatchChangeEvent( "role", _role, oldRole );

				if ( !isActive && aPresence.type != Presence.TYPE_UNAVAILABLE )
				{
