                 // translate these colors into uints
                 styleManager.getColorNames(alternatingColors);
                 
-                backgroundColor = alternatingColors[index % alternatingColors.length];
+                backgroundColor = alternatingColors[itemIndex % alternatingColors.length];
             }
-            
-            backgroundColor = getStyle("contentBackgroundColor");
+            else
+            {
+                backgroundColor = getStyle("contentBackgroundColor");
+            }
+            
         }
         graphics.beginFill(backgroundColor, 1);
         
-        if (layout && layout.useVirtualLayout)
-            graphics.drawRect(horizontalScrollPosition, verticalScrollPosition, w, h);
+        if (showsCaret)
+        {
+            graphics.lineStyle(1, getStyle("selectionColor"));
+            graphics.drawRect(0.5, 0.5, w-1, h-1);
+        }
         else
         {
-            const tileSize:int = 4096;
-            const maxX:int = Math.round(Math.max(w, contentWidth));
-            const maxY:int = Math.round(Math.max(h, contentHeight));
-            for (var x:int = 0; x < maxX; x += tileSize)
-                for (var y:int = 0; y < maxY; y += tileSize)
-                {
-                    var tileWidth:int = Math.min(maxX - x, tileSize);
-                    var tileHeight:int = Math.min(maxY - y, tileSize);
-                    graphics.drawRect(x, y, tileWidth, tileHeight); 
-                }
+            graphics.lineStyle();
+            graphics.drawRect(0, 0, w, h);
         }
         
         graphics.endFill();

    
    /**
     *  @private
     *  storage for the handleHighlightBackground property 
     */ 
    private var _handleHighlightBackground:Boolean = false;
    
    /**
     *  Whether the item renderer should handle drawing the 
     *  selection/highlight background.
     * 
     *  <p>If set to <code>true</code>, the background for 
     *  the item renderer is automatically drawn, and it 
     *  depends on the styles that are set (<code>contentBackgroundColor</code>, 
     *  <code>alternatingItemColor</code>, <code>rollOverColor</code>, 
     *  <code>selectionColor</code>) 
     *  and the state that the item renderer is in (normal, 
     *  selected, or hovered).</p>
     * 
     *  @default false
     */
    public function get handleHighlightBackground():Boolean
    {
        return _handleHighlightBackground;
    }
    
    /**
     *  @private
     */
    public function set handleHighlightBackground(value:Boolean):void
    {
        if (_handleHighlightBackground == value)
            return;
        
        _handleHighlightBackground = value;
        
        if (_handleHighlightBackground)
        {
            redrawRequested = true;
            super.$invalidateDisplayList();

    {
        hovered = false;
        setCurrentState(getCurrentRendererState(), playTransitions);
        if (autoDrawBackground)
        {
            redrawRequested = true;
            super.$invalidateDisplayList();
