 	public class ArrayCollection extends EventDispatcher
 	{
 		protected const OUT_OF_BOUNDS_MESSAGE:String = "The supplied index is out of bounds.";
-
-		protected var _source:Array;
-
+		
+		protected var _source:Array = [];
+		
 		/**
 		 * Constructor.
 		 */
-		public function ArrayCollection( source:Array=null )
+		public function ArrayCollection( source:Array = null )
 		{
 			super();
-
-			this.source = source ? source : [];
-		}
-
+			
+			if (source)
+			{
+				this.source = source;
+			}
+		}
+		
 		/**
 		 * The source of data in the ArrayCollection.
 		 */

		{
			return _source ? _source.length : 0;
		}

		/**
		 * Get the item at the specified index.
		 */
		public function getItemAt( index:int ):*
		{
			if( index < 0 || index >= length )
			{
				throw new RangeError( OUT_OF_BOUNDS_MESSAGE );
			}

			return _source[ index ];
		}

		/**
		 * Places the item at the specified index.
		 * If an item was already at that index the new item will replace it

		{
			internalDispatchEvent( CollectionEventKind.UPDATE, item );
		}
		
		/**
		 * Return an Array that is populated in the same order as the ArrayCollection.
		 */
