                                                                 spaceToDistribute,
                                                                 totalPercentHeight,
                                                                 childInfoArray);
-            
+
+            var roundOff:Number = 0;            
             for each (childInfo in childInfoArray)
             {
+                // Make sure the calculated percentages are rounded to pixel boundaries
+                var childSize:int = Math.round(childInfo.size + roundOff);
+                roundOff += childInfo.size - childSize;
+
                 sizeLayoutElement(childInfo.layoutElement, width, horizontalAlign, 
-                               restrictedWidth, childInfo.size, 
+                               restrictedWidth, childSize, 
                                variableRowHeight, rh);
             }
         }

       switch(horizontalAlign)
       {
           case HorizontalAlign.CENTER: 
               return (containerWidth - eltWidth) * 0.5;
           case HorizontalAlign.RIGHT: 
               return containerWidth - eltWidth;
       }


    private static function calculatePercentWidth(layoutElement:ILayoutElement, width:Number):Number
    {
    	var percentWidth:Number = LayoutElementHelper.pinBetween(Math.round(layoutElement.percentWidth * 0.01 * width),
    	                                                         layoutElement.getMinBoundsWidth(),
    	                                                         layoutElement.getMaxBoundsWidth() );
    	return percentWidth < width ? percentWidth : width;
