     {
         if (layout && layout.useVirtualLayout)
         {
-            if (index < virtualLayoutStartIndex)
-            {
-                invalidateSize();
-                invalidateDisplayList();
-                return;
-            }
-            else if (index > virtualLayoutEndIndex)
-            {
-                invalidateSize();
-                return;
-            }
-            // otherwise, we'll add it to the display list
+            appendContentChangeDelta(index+1);
+            indexToRenderer.splice(index, 0, null);
+            invalidateSize();
+            invalidateDisplayList();
+            return;
         }
         
         var myItemRenderer:IVisualElement = createRendererForItem(item);

        _layeringFlags |= (LAYERING_ENABLED | LAYERING_DIRTY);
        invalidateProperties();
    }

    /**
     *  Adds the itemRenderer for the specified dataProvider item to this DataGroup.
     * 

            finishVirtualLayout();
            virtualLayoutUnderway = false;
        }
        _contentChangeDeltas = null;
    }
    
    /**
