         var layoutElement:ILayoutElement;
         
         // columnWidth can be expensive to compute
-        var cw:Number = (variableColumnWidth) ? 0 : columnWidth;
+        var cw:Number = (variableColumnWidth) ? 0 : Math.ceil(columnWidth);
         var count:uint = target.numElements;
         var totalCount:uint = count; // number of elements to use in gap calculation
         

            if ((reqEltCount == -1) || ((reqEltCount != -1) && eltInLayoutCount < requestedColumnCount))
            {
                var width:Number = isNaN(fixedColumnWidth) ? elt.getPreferredBoundsWidth() : fixedColumnWidth;
                preferredWidth += width;
                minWidth += (isNaN(elt.percentWidth)) ? width : elt.getMinBoundsWidth();
                eltInLayoutCount += 1;
            }
        }

                continue;

            // Set the layout element's position
            var dx:Number = Math.ceil(layoutElement.getLayoutBoundsWidth());
            var dy:Number = Math.ceil(layoutElement.getLayoutBoundsHeight());

            var y:Number = y0 + (containerHeight - dy) * vAlign;
            // In case we have VerticalAlign.MIDDLE we have to round
            if (vAlign == 0.5)
                y = Math.round(y);
            layoutElement.setLayoutBoundsPosition(x, y);

            // Update maxX,Y, first,lastVisibleIndex, and x
            maxX = Math.max(maxX, x + dx);
            maxY = Math.max(maxY, y + dy);            
            if (!clipAndEnableScrolling || 
