 			var message:Message = new Message( roomJID.escaped, null, body, htmlBody,
 												   Message.TYPE_GROUPCHAT );
 			return message;
+		}
+
+		/**
+		 * Gets the <code>RoomOccupant</code> whose displayName matches the name passed in.
+		 *
+		 * @param	name
+		 * @return
+		 */
+		public function getOccupantNamed( name:String ):RoomOccupant
+		{
+			for each ( var occ:RoomOccupant in this )
+			{
+				if ( occ.displayName == name )
+				{
+					return occ;
+				}
+			}
+			return null;
 		}
 
 		/**

		}

		/**
		 * Gets the user's affiliation for this room.
		 * Possible affiliations are "owner", "admin", "member", and "outcast".
		 * It is also possible to have no defined affiliation.
		 */
		public function get affiliation():String
		{
			return _affiliation;
		}

		/**
		 * Gets the user's role in the conference room.
		 * Possible roles are "visitor", "participant", "moderator" or no defined role.
		 */

		}

		/**
		 * IQ callback when form is ready.
		 */
		private function finish_requestConfiguration( iq:IQ ):void
		{
			if ( iq.type == IQ.TYPE_ERROR )
			{
				finish_admin( iq );
				return;
			}

			var ownerExt:MUCOwnerExtension = iq.getAllExtensionsByNS( MUCOwnerExtension.NS )[ 0 ];
			var form:FormExtension = ownerExt.getAllExtensionsByNS( FormExtension.NS )[ 0 ];

			if ( form.type == FormExtension.TYPE_REQUEST )
			{
				var event:RoomEvent = new RoomEvent( RoomEvent.CONFIGURE_ROOM );
				event.data = form;
				dispatchEvent( event );
			}
		}

		/**
