             for (i = 0; i < numAdded; i++)
                 dest.removeItemAt(startIndex);
         }
-        else if (propertyName == null && dest is Container)
+        else if (propertyName == null && dest is IChildList)
         {
             for (i = 0; i < numAdded; i++)
-                Container(dest).removeChildAt(startIndex);
+                IChildList(dest).removeChildAt(startIndex);
         }
         else if (propertyName != null && !isStyle && dest[propertyName] is IList)
         {
-            removeItemsFromArrayCollection(dest[propertyName] as IList);
+            removeItemsFromIList(dest[propertyName] as IList);
         }
         else
         {

    }
  
    /**
     * @private
     * Find the index of the relative object. If relativeTo is an array,
     * search for the first valid item's index.  This is used for stateful
     * documents where one or more relative siblings of the newly inserted

    /**
     *  @private
     */
    protected function addItemsToIList(list:IList, items:Array):void
    {       
        if (startIndex == -1)
            startIndex = list.length;
