 		}
 
 		/**
+		 * Should the connection queue presence events for a small interval so that it can send multiple in a batch?
+		 * @default true To maintain original behavior -- has to be explicitly set to false to disable.
+		 */
+		public function get queuePresences():Boolean
+		{
+			return _queuePresences;
+		}
+		public function set queuePresences(value:Boolean):void
+		{
+			if(_queuePresences && !value) 
+			{		// if we are disabling queueing, handle all queued presence 
+				if(presenceQueueTimer)
+					presenceQueueTimer.stop();
+				
+				flushPresenceQueue(null);
+			} 
+			_queuePresences = value;
+		}
+
+		/**
 		 * Gets the fully qualified unescaped JID of the user.
 		 * A fully-qualified JID includes the resource. A bare JID does not.
 		 * To get the bare JID, use the <code>bareJID</code> property of the UnescapedJID.

	import flash.utils.*;
	import flash.xml.XMLDocument;
	import flash.xml.XMLNode;

	import org.igniterealtime.xiff.auth.*;
	import org.igniterealtime.xiff.data.*;
	import org.igniterealtime.xiff.data.auth.AuthExtension;
	import org.igniterealtime.xiff.data.bind.BindExtension;
	import org.igniterealtime.xiff.data.forms.FormExtension;
	import org.igniterealtime.xiff.data.register.RegisterExtension;
	import org.igniterealtime.xiff.data.session.SessionExtension;;
	import org.igniterealtime.xiff.data.ping.PingExtension;
	import org.igniterealtime.xiff.events.*;
	import org.igniterealtime.xiff.exception.SerializationException;


				throw new SerializationException();
			}

			if(queuePresences) 
			{
				presenceQueue.push( presence );
	
				presenceQueueTimer.reset();
				presenceQueueTimer.start();
			}
			else 
			{
				var presenceEvent:PresenceEvent = new PresenceEvent();
				presenceEvent.data = [ presence ];
				dispatchEvent( presenceEvent );
			}
			
			return presence;
		}

		protected function flushPresenceQueue(event:TimerEvent):void
		{
			if(presenceQueue.length > 0) {
				var presenceEvent:PresenceEvent = new PresenceEvent();
				presenceEvent.data = presenceQueue;
				dispatchEvent( presenceEvent );
				presenceQueue = [];
			}
		}

		/**
