         var firstRowInView:int = -1;
         var lastRowInView:int = -1;
         
+        // Take verticalAlign into account
+        if (excessHeight > 0 || !clipAndEnableScrolling)
+        {
+            var vAlign:String = verticalAlign;
+            if (vAlign == VerticalAlign.MIDDLE)
+            {
+                y = paddingTop + Math.floor(excessHeight / 2);   
+            }
+            else if (vAlign == VerticalAlign.BOTTOM)
+            {
+                y = paddingTop + excessHeight;   
+            }
+        }
+
         for (var index:int = 0; index < count; index++)
         {
             layoutElement = layoutTarget.getElementAt(index);

    //
    //--------------------------------------------------------------------------
    
    /**
     * @private
     */

            }
        }

        var excessHeight:Number = distributeHeight(targetWidth, targetHeight, containerWidth);
        
        // default to left (0)
        var hAlign:Number = 0;
