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

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

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