                 throw new ConstraintError(message);
             }
         }
-        else if (!parentBoundariesLR)
-        {
-            //The left, right or horizontalCenter style has been set to
-            //a non-parent region, but no columns were declared 
+		else if (!parentBoundariesLR && length == 0)
+		{
+            // The left, right or horizontalCenter style has been set to
+            // a non-parent region, but no columns were declared 
             message = resourceManager.getString(
                 "containers", "noColumnsFound");
             throw new ConstraintError(message);
         }
         
-        //The width of the region which
-        //the control will live in. 
+        // The width of the region which
+        // the control will live in. 
         availableWidth = Math.round(rightHolder - leftHolder);
 
         // If a percentage size is specified for a child,

        var checkWidth:Boolean = false;
        var checkHeight:Boolean = false;
    
        //If we are to evaluate the left, right, and horizontalCenter
        //styles relative to the parent boundaries, parentBoundariesLR will
        //be true
        var parentBoundariesLR:Boolean = (!hcBoundary && !leftBoundary && !rightBoundary);
        //If we are to evaluate the top, bottom, verticalCenter and baseline
        //styles relative to the parent boundaries, parentBoundariesTB will
        //be true
        var parentBoundariesTB:Boolean = (!vcBoundary && !topBoundary && !bottomBoundary && !baselineBoundary);
    
        var leftHolder:Number = 0;

        var verticalCenter:Number = childInfo.vc;
        var baseline:Number = childInfo.baseline;

        // Variables to track the boundaries from which
        // the offsets are calculated from. If null, the 
        // boundary is the parent container edge. 
        var leftBoundary:String = childInfo.leftBoundary;
        var rightBoundary:String = childInfo.rightBoundary;
        var hcBoundary:String = childInfo.hcBoundary;
