 
         for (var index:int = oldVirtualLayoutStartIndex; index <= oldVirtualLayoutEndIndex; index++)
         {
-            // Skip the inView renderers 
-            if (index >= virtualLayoutStartIndex && index <= virtualLayoutEndIndex)
+            // Skip the inView renderers.  If vitrualLayoutStartIndex is -1, there aren't any. 
+            if (virtualLayoutStartIndex != -1 && index >= virtualLayoutStartIndex && index <= virtualLayoutEndIndex)
             {
                 index = virtualLayoutEndIndex;
                 continue;

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

    /**
     *  @private
     *  Sync the typicalLayoutElement var with this group's layout.

                value.typicalLayoutElement = typicalLayoutElement;
            else
                typicalLayoutElement = value.typicalLayoutElement;
            value.addEventListener("useVirtualLayoutChanged", layout_useVirtualLayoutChangedHandler);
        }
    }
    
    /**
     *  @private
     *  If layout.useVirtualLayout changes, recreate the ItemRenderers.  This can happen
     *  if the layout's useVirtualLayout property is changed directly, or if the DataGroup's
     *  layout is changed. 
     */    
    private function changeUseVirtualLayout():void
    {
        trace("DataGroup::changeUseVirtualLayout()");
        cleanUpDataProvider();
        invalidateProperties();
        useVirtualLayoutChanged = true;
    }
    
    private function layout_useVirtualLayoutChangedHandler(event:Event):void
    {
        changeUseVirtualLayout();
    }

    //----------------------------------
    //  itemRenderer
    //----------------------------------
