     /**
      *  @private
      */
-    protected function removeItemsFromArrayCollection(dest:ArrayCollection):void
-    {
-        var list:ArrayList = ArrayList(dest.list);
-        
+    protected function removeItemsFromArrayCollection(list:IList):void
+    {
         for (var i:int = 0; i < numAdded; i++)
             list.removeItemAt(startIndex);
         

    /**
     *  @private
     */
    protected function addItemsToArrayCollection(dest:ArrayCollection, items:Array):void
    {       
        var list:ArrayList = ArrayList(dest.list);
        
        if (startIndex == -1)
            startIndex = list.length;
        

        {
            addItemsToContainer(dest as Container, localItems);
        }
        else if (propertyName != null && !isStyle && dest[propertyName] is IList)
        {
            addItemsToArrayCollection(dest[propertyName], localItems);
        }
