 
     /**
      *  @private
+     *  @return columns to measure based on elements in layout and any requested/min/max rowCount settings. 
+     */
+    private function getColumsToMeasure(numElementsInLayout:int):int
+    {
+        var columnsToMeasure:int;
+        if (requestedColumnCount != -1)
+            columnsToMeasure = requestedColumnCount;
+        else
+        {
+            columnsToMeasure = numElementsInLayout;
+            if (requestedMaxColumnCount != -1)
+                columnsToMeasure = Math.min(requestedMaxColumnCount, columnsToMeasure);
+            if (requestedMinColumnCount != -1)
+                columnsToMeasure = Math.max(requestedMinColumnCount, columnsToMeasure);
+        }
+        return columnsToMeasure;
+    }
+    
+    /**
+     *  @private
      * 
      *  Compute exact values for measuredWidth,Height and  measuredMinWidth,Height.
      *  

     *  then this property has no effect.</p>
     * 
     *  @default -1
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get requestedMinColumnCount():int
    {
        return _requestedMinColumnCount;

    private function measureVirtual(layoutTarget:GroupBase):void
    {
        var eltCount:int = layoutTarget.numElements;
        var measuredEltCount:int = getColumsToMeasure(eltCount);
        
        var hPadding:Number = paddingLeft + paddingRight;
        var vPadding:Number = paddingTop + paddingBottom;
