 			
 			input.text = String(spinner.value);
 			
-			// set a default size which will trigger the sizeChangeHandler
-			var minWidth:Number = Math.max(50+spinner.width,UIBase(value).width);
-			
-			UIBase(value).width = minWidth;
-			UIBase(value).height = spinner.height;
+            var host:ILayoutChild = ILayoutChild(value);
+            if ((host.isWidthSizedToContent() || isNaN(host.explicitWidth)) &&
+                (host.isHeightSizedToContent() || isNaN(host.explicitHeight)))
+                sizeChangeHandler(null);
 		}
 		
 		/**

			spinner = new Spinner();
			spinner.addBead( UIBase(value).model );
			IParent(value).addElement(spinner);
			spinner.width = 17;
			spinner.height = input.height;
			
			// listen for changes to the text input field which will reset the

			spinner.addEventListener("valueChange",spinnerValueChanged);
			IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler);
			IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler);
            IEventDispatcher(value).addEventListener("sizeChanged",sizeChangeHandler);
			
			// listen for changes to the model itself and update the UI accordingly
			IEventDispatcher(UIBase(value).model).addEventListener("valueChange",modelChangeHandler);
