 				viewportHeight-=_horizontalScrollBar.height
 			}
 			if(_verticalScrollBar){
-				scrollY = _verticalScrollBar.value*(_contentHeight-viewportHeight);
+				scrollY = Math.max(0,_verticalScrollBar.value*(_contentHeight-viewportHeight));
 			}
 			if(_horizontalScrollBar){
 				scrollX = _horizontalScrollBar.value*(_contentWidth-viewportWidth);

				})
			});
			_verticalScrollBar.addEventListener(PyroEvent.SIZE_VALIDATED, onVerticalScrollBarSizeValidated);
			_verticalScrollBar.addEventListener(PyroEvent.UPDATE_COMPLETE, onVScrollBarUpdateComplete);
			_verticalScrollBar.skin = IScrollableContainerSkin(_skin).verticalScrollBarSkin;
			_verticalScrollBar.addEventListener(ScrollEvent.SCROLL, onVerticalScroll)
			_verticalScrollBar.doOnAdded()

		}
		
		/**
		 * The autoPositionViewport property determines whether the scrollRect
		 * is applied immediately on updateDisplaylist or not. Certain controls
		 * like Lists want to control the viewport positioning more explicitly.
		 * For example, when an item is removed from the List or Tree, the default
		 * setting of the autoPositionViewport will try to adjust the scroll to
		 * the same percent value as before causing the list items to "jump". So
		 * Lists turn this property to false and explicitly tell the viewport to
		 * position only when its scrolled and not when items are added or removed
		 * 
		 */ 
		protected var autoPositionViewport:Boolean = true;
		
		/**
		 * Unlike UIControls, UIContainers do not apply a skin directly on 
		 * themselves but interpret the skin file and apply them to the 
		 * different children. So updateDisplayList here does not call
