             else
                 insertIndex = index;
                 
-            super.setChildIndex(child, insertIndex);
+            // Quietly ignore invalid indices since they're typically caused
+            // by duplicate data items and Halo quietly ignore those
+            if ((insertIndex > 0) && (insertIndex < super.numChildren)) 
+                super.setChildIndex(child, insertIndex);
+
             return child;
         }
         else if (child.parent && child.parent is DataGroup)

        setTypicalLayoutElement(obj);
        super.removeChild(obj);
    }    

    //----------------------------------
    //  layout

                itemToRenderer[item] = elt;  // weak reference
            }

            addItemRendererToDisplayList(DisplayObject(elt), index - virtualLayoutStartIndex);
            
            if ((createdIR || recycledIR) && (elt is IInvalidating))
                IInvalidating(elt).validateNow();
