             
             // layout the renderer
             
-            var isLastColumn:Boolean = columnIndex == (columnsLength - 1);  // TBD(hmuller): last VISIBLE column
+            var isLastColumn:Boolean = columnIndex == lastVisibleColumnIndex;
             var rendererX:Number = grid.getCellX(0, columnIndex) + paddingLeft;
             var rendererWidth:Number = grid.getColumnWidth(columnIndex); 
 

        
        const columns:IList = grid.columns;
        const columnsLength:int = (columns) ? columns.length : 0;
        const rendererY:Number = paddingTop;
        const rendererHeight:Number = unscaledHeight - paddingTop - paddingBottom;
        const maxRendererX:Number = columnHeaderBar.horizontalScrollPosition + unscaledWidth;
        
        var columnIndex:int = -1;
        var visibleLeft:Number = 0;
        var visibleRight:Number = 0;              
        
        // This isn't quite as simple as: 
        //     for each (var columnIndex:int in visibleColumnIndices)

            if (index < visibleColumnIndices.length)
                columnIndex = visibleColumnIndices[index];
            else
                columnIndex = grid.getNextVisibleColumnIndex(columnIndex);
           
            if (columnIndex < 0 || columnIndex >= columnsLength)
                break;

            column = columns.getItemAt(columnIndex) as GridColumn;
