 	 * The ArrayCollection class is a wrapper class that exposes an Array as a
 	 * collection that can be accessed and manipulated using collection methods.
 	 */
-	public class ArrayCollection extends EventDispatcher
+	public class ArrayCollection extends Proxy implements IEventDispatcher
 	{
 		protected const OUT_OF_BOUNDS_MESSAGE:String = "The supplied index is out of bounds.";
 		
+		protected var eventDispatcher:EventDispatcher;
+		
 		protected var _source:Array = [];
 		
 		/**

package org.igniterealtime.xiff.collections
{
	import flash.events.EventDispatcher;
	
	import org.igniterealtime.xiff.collections.events.CollectionEvent;
	import org.igniterealtime.xiff.collections.events.CollectionEventKind;

		public function ArrayCollection( source:Array = null )
		{
			super();
			
			eventDispatcher = new EventDispatcher( this );
			
			if (source)
			{
