     }    
     
     //----------------------------------
-    //  explicitColumnWidth
-    //----------------------------------
-
-    /**
-     *  The column width requested by explicitly setting
-     *  <code>columnWidth</code>.
-     */
-    protected var explicitColumnWidth:Number;
-
-    //----------------------------------
     //  columnWidth
     //----------------------------------
     
-    private var _columnWidth:Number = 20;
+    private var _columnWidth:Number;
 
     [Inspectable(category="General")]
 
     /**
      *  Specifies the width of the columns if <code>variableColumnWidth</code>
      *  is false.
-     *  
-     *  @default 20
+     * 
+     *  If this property isn't explicitly set, then the measured width
+     *  of the first item is returned.
      */
     public function get columnWidth():Number
     {
-        return _columnWidth;
+        if (!isNaN(_columnWidth))
+            return _columnWidth;
+        else if (!target || (target.numLayoutItems <= 0))
+            return 0;
+        else
+            return target.getLayoutItemAt(0).preferredSize.x;
     }
 
     /**

     */
    public function set columnWidth(value:Number):void
    {
        explicitColumnWidth = value;

        if (_columnWidth != value)
        {
            setColumnWidth(value);
 		   	var layoutTarget:GroupBase = target;
        	if (layoutTarget != null) 
        	{
            	layoutTarget.invalidateSize();
	            layoutTarget.invalidateDisplayList();
        	}
        }
    }

    /**
     *  Sets the <code>columnWidth</code> property without causing invalidation or 
     *  setting of <code>explicitColumnWidth</code> which
     *  permanently locks in the width of the columns.
     *
     *  @param value The column width, in pixels.
     */
    protected function setColumnWidth(value:Number):void
    {
        _columnWidth = value;
    }    


    //----------------------------------
    //  variableColumnWidth

            layoutItem.setActualPosition(x, y);
            var dy:Number = layoutItem.actualSize.y;
            if (!variableColumnWidth)
                layoutItem.setActualSize(cw, dy);

            // Update maxX,Y, first,lastVisibleIndex, and x
            var dx:Number = layoutItem.actualSize.x;
