 		// as being stretchable. 
 	}
 
+    /**
+     *  @private
+     *  During preLayoutAdjustment, we make some changes to the children's
+     *  widths and heights.  We keep track of the original values in postLayoutChanges
+     *  so we can later go back and reset them so another layout pass is working 
+     *  with the correct values rather than these modified values.
+     */ 
+    private var postLayoutChanges:Array;
+    
+    /**
+     *  @private
+     *  Post layout work.  In preLayoutAdjustment() 
+     *  sometimes we set a child's percentWidth/percentHeight.  
+     *  postLayoutAdjustment() will reset the child's width or height
+     *  back to what it was.
+     */
+    private function postLayoutAdjustment():void
+    {
+        // each object has a child property and may have a set of width/height 
+        // properties that it would like to be set
+        var len:int = postLayoutChanges.length;
+        for (var i:int = 0; i < len; i++)
+        {
+            var changeObject:Object = postLayoutChanges[i];
+            
+            if (changeObject.percentWidth !== undefined)
+                changeObject.child.percentWidth = changeObject.percentWidth;
+            
+            if (changeObject.percentHeight !== undefined)
+                changeObject.child.percentHeight = changeObject.percentHeight;
+            
+            if (changeObject.explicitWidth !== undefined)
+                changeObject.child.explicitWidth = changeObject.explicitWidth;
+            
+            if (changeObject.explicitHeight !== undefined)
+                changeObject.child.explicitHeight = changeObject.explicitHeight;
+        }
+        postLayoutChanges = null;
+    }
+
 	//--------------------------------------------------------------------------
 	//
 	//  Event handlers

		// Let Box lay out the children.
		super.updateDisplayList(unscaledWidth, unscaledHeight);
		
		// Lay out the dividers.
        if (!dividerLayer)
           return;

			}
		}

        // during preLayoutAdjustment, we make some changes to the children's
        // widths and heights.  We keep track of the original values in postLayoutChanges
        // so we can later go back and reset them so another layout pass is working 
        // with the correct values rather than these modified values.
        postLayoutChanges = [];
        var changeObject:Object;

		// No flexible children, so we make the last one 100%.
		if (totalPerc == 0 && percCount == 0)
		{
