 		}
 		
 		/**
+		 * 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

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

				_horizontalScrollBar.y = this.height - _horizontalScrollBar.height-1;
			}	
			super.updateDisplayList(unscaledWidth, unscaledHeight);	
			if(_clipContent && autoPositionViewport){
				this.setContentMask()
			}
		}
