             inChangeHandler = true;
             
             var host:UIBase = UIBase(_strand);
+			var originalHostWidth:Number = host.width;
+			var originalHostHeight:Number = host.height;
 
             if (layout == null)
             {

            
            var host:UIBase = value as UIBase;
            
            if (host.isWidthSizedToContent() && host.isHeightSizedToContent())
            {
                // if both dimensions are sized to content, then only draw the
                // borders, etc, after a child is added.  The children in an MXML

            }
            // and if the height is sized to content, set the height now as well.
            if (host != actualParent)
	        {
                if (host.isHeightSizedToContent()) {
                    host.setHeight(padding.paddingTop + pb + actualParent.height);
				}
                else
                    actualParent.setHeight(host.height - padding.paddingTop - pb);
		    }
			// if host and actualParent are the same, determine if the layout changed
			// the size and if, dispatch events based on what changed
			else if (sizeChangedByLayout) 
			{
				if (originalHostWidth != host.width) 
					host.dispatchEvent(new Event("widthChanged"));
				if (originalHostHeight != host.height)
					host.dispatchEvent(new Event("heightChanged"));
			}
			
			displayBackgroundAndBorder(host);
			            
            inChangeHandler = false;
		}
		
		protected function displayBackgroundAndBorder(host:UIBase) : void
		{
			var backgroundColor:Object = ValuesManager.valuesImpl.getValue(host, "background-color");
			var backgroundImage:Object = ValuesManager.valuesImpl.getValue(host, "background-image");
			if (backgroundColor != null || backgroundImage != null)
			{
				if (host.getBeadByType(IBackgroundBead) == null)
					host.addBead(new (ValuesManager.valuesImpl.getValue(host, "iBackgroundBead")) as IBead);					
			}
			
			var borderStyle:String;
