                         bottomIndex = numRows - 1; // constrained to parent
                 }
                 
-                // baseline could win if either are less than 0
+                // Only include baseline if at least one of top or bottom don't
+                // exist.
                 if (!isNaN(elementInfo.baseline) && (topIndex < 0 || bottomIndex < 0))
                 {
                     extY += elementInfo.baseline - layoutElement.baselinePosition;
                     
                     if (!isNaN(elementInfo.top))
                         extY -= elementInfo.top;
+                    
                     if (elementInfo.baselineBoundary)
                         topIndex = elementInfo.baselineIndex;
                     else

        }
    }

    mx_internal function checkUseVirtualLayout():void
    {
        if (useVirtualLayout)
            throw new Error(ResourceManager.getInstance().getString("layout", "basicLayoutNotVirtualized"));
    }

    /**

    
    /** 
     *  @private
     *  This function measures the ConstraintColumns partitioning
     *  the target and sets their x positions.
     * 
     *  The algorithm works like this:
     *  1. Fixed columns honor their pixel values.
     * 
     *  2. Content sized columns whose children span
