         if (!layoutTarget)
             return;
         
-        if (!useLayoutColumnWidths)
-            measureAndPositionColumnsAndRows();
+        // need to parse constraints and rows may resize.
+        measureAndPositionColumnsAndRows();
+        
+        if (layoutColumnWidths)
+            setColumnWidths(layoutColumnWidths);
         
         layoutContent(unscaledWidth, unscaledHeight);
-        
-        useLayoutColumnWidths = false;
     }
     
     /**
      *  @private
      *  Used by layout to get the measured column widths
      */
-    mx_internal function getMeasuredColumnWidths():Vector.<Number>
+    public function getMeasuredColumnWidths():Vector.<Number>
     {
         measureAndPositionColumnsAndRows();
         

     *  Used by layout to set the column widths for updateDisplayList. Must
     *  call this if you want to override the default widths of the columns.
     */
    mx_internal function setLayoutColumnWidths(value:Vector.<Number>):void
    {
        //apply new measurements and position the columns again.
        useLayoutColumnWidths = true;
        
        var constraintColumns:Vector.<ConstraintColumn> = this.constraintColumns;
        var numCols:int = constraintColumns.length;
        var totalWidth:Number = 0;


use namespace mx_internal;

/**
 *  The FormItemLayout is used by FormItems to provide a constraint based layout.
 *  Elements using FormItemLayout within a FormLayout are aligned along columns.  
 * 
 *  @langversion 3.0
 *  @playerversion Flash 10
 *  @playerversion AIR 1.5
 *  @productversion Flex 4.5
 */ 
public class FormItemLayout extends ConstraintLayout
{
    //--------------------------------------------------------------------------
    //
    //  Constructor
    //
    //--------------------------------------------------------------------------
    
    /**
     *  Constructor.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4.5
     */
    public function FormItemLayout()
    {
        super();
    }
    
    private var layoutColumnWidths:Vector.<Number> = null;
    
    /**
     *  @private
