 		 */
 		public function grant( affiliation:String, jids:Array ):void
 		{
-			var iq:IQ = new IQ( roomJID.escaped, IQ.TYPE_SET );
-			var adminExt:MUCAdminExtension = new MUCAdminExtension();
-
-			iq.callback = finish_grant;
+			affiliationArgs = arguments;
+
+			var iq:IQ = new IQ( roomJID.escaped, IQ.TYPE_SET, null, grant_response, grant_error );
 
 			for each ( var jid:UnescapedJID in jids )
 			{
-				adminExt.addItem( affiliation, null, null, jid.escaped, null, null );
-			}
-
-			iq.addExtension( adminExt );
+				affiliationExtension.addItem( affiliation, null, null, jid.escaped, null, null );
+			}
+
+			iq.addExtension( affiliationExtension as IExtension );
 			_connection.send( iq );
 		}
 

		 */
		public function requestConfiguration():void
		{
			var iq:IQ = new IQ( roomJID.escaped, IQ.TYPE_GET );
			var ownerExt:MUCOwnerExtension = new MUCOwnerExtension();

			iq.callback = finish_requestConfiguration;
			iq.addExtension( ownerExt );

			_connection.send( iq );

			dispatchEvent( new Event( "activeStateUpdated" ));
		}

		/**
		 * @private
		 *
		 * Room owner (creation/configuration/destruction) methods
		 * @see	http://xmpp.org/extensions/xep-0045.html#createroom
		 */
