         
         _horizontalAlign = value;
 
+        var layoutTarget:GroupBase = target;
+        if (layoutTarget)
+            layoutTarget.invalidateDisplayList();
+    }
+    
+    //----------------------------------
+    //  verticalAlign
+    //----------------------------------
+    
+    /**
+     *  @private
+     */
+    private var _verticalAlign:String = VerticalAlign.TOP;
+    
+    [Inspectable(category="General", enumeration="top,bottom,middle", defaultValue="top")]
+    
+    /** 
+     *  The vertical alignment of the content relative to the container's height.
+     *
+     *  <p>This property has no effect when <code>clipAndEnableScrolling</code> is true
+     *  and the <code>contentHeight</code> is greater than the container's height.</p>
+     *
+     *  <p>This property does not affect the layout's measured size.</p>
+     *  
+     *  @default "top"
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get verticalAlign():String
+    {
+        return _verticalAlign;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set verticalAlign(value:String):void
+    {
+        if (value == _verticalAlign) 
+            return;
+        
+        _verticalAlign = value;
+        
         var layoutTarget:GroupBase = target;
         if (layoutTarget)
             layoutTarget.invalidateDisplayList();

                sizeLayoutElement(childInfo.layoutElement, width, horizontalAlign, 
                               restrictedWidth, childSize, 
                               variableRowHeight, rh);
            }
        }
        return spaceToDistribute;

        return percentWidth < width ? percentWidth : width;
    }
    
    private static function sizeLayoutElement(layoutElement:ILayoutElement, 
                                              width:Number, 
                                              horizontalAlign:String, 
                                              restrictedWidth:Number, 
                                              height:Number, 
                                              variableRowHeight:Boolean, 
                                              rowHeight:Number):void
    {
        var newWidth:Number = NaN;
        
