             }
             
             // Can we measure the width of this column?
-            if (requestedColumnCount == -1 || columnsMeasured < requestedColumnCount)
+            if (columnsMeasured < columnsToMeasure)
             {
                 getElementWidth(element, fixedColumnWidth, size);
                 preferredWidth += size.preferredSize;

            }
        }
        
        // Calculate the total number of columns to measure
        var columnsToMeasure:int = getColumsToMeasure(numElementsInLayout);

        // Do we need to measure more columns?
        if (columnsMeasured < columnsToMeasure)

        if (!variableColumnWidth)
            fixedColumnWidth = columnWidth;  // may query typicalLayoutElement, elt at index=0
        
        // Get the numElementsInLayout clamped to requested min/max
        var columnsToMeasure:int = getColumsToMeasure(numElementsInLayout);
        var element:ILayoutElement;
        for (var i:int = 0; i < numElements; i++)
        {
