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

    {
        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
        }
        
        var myItemRenderer:IVisualElement = indexToRenderer[index];
        indexToRenderer.splice(index, 1);

        _layeringFlags |= (LAYERING_ENABLED | LAYERING_DIRTY);
        invalidateProperties();
    }
    
    private var _contentChangeDeltas:Vector.<int> = null;
    

    /**
     *  @private
     *  Provisional support for notifying the layout of upcoming changes to the
     *  layout elements (item renderers).   The value of this property is a
     *  vector where positive values indicate item addditions, and negative values
     *  indicate item removals.   In both cases the index values are offset by one.
     */  
    override mx_internal function get contentChangeDeltas():Vector.<int>
    {
        return _contentChangeDeltas;
    }
    
    private function appendContentChangeDelta(index:int):void
    {
        if (!_contentChangeDeltas)
            _contentChangeDeltas = new Vector.<int>();
        _contentChangeDeltas.push(index);
    }
    
    /**
     *  Adds the itemRenderer for the specified dataProvider item to this DataGroup.
     * 
