 				this.focusRectHolder.graphics.drawRect(rect.left, rect.top, rect.width, rect.height);
 			}
 		}
+		
+		/**
+		 * Creates/removes a Sprite on which the drop shadow can be applied to. This is done
+		 * since setting the dropShadow on the control itself may cause the control's
+		 * bitmap to be generated and cached by the Flash Player before the control is 
+		 * fully created.
+		 */ 
+		public function set dropShadowEnabled(val:Boolean):void{
+			if(val){
+				dropShadowSprite = new Sprite();
+				dropShadowSprite.graphics.beginFill(0xffffff);
+				dropShadowSprite.graphics.drawRect(0,0,100,100);
+				$addChildAt(dropShadowSprite,0);
+				dropShadowSprite.width = width;
+				dropShadowSprite.height = height;
+				dropShadowSprite.filters = [new DropShadowFilter(4,90,0,.4)];
+			}
+			else{
+				dropShadowSprite.parent.removeChild(dropShadowSprite);
+				dropShadowSprite = null;
+			}
+		}
 	}
 }

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

		public var debugScrollRect:Boolean = false
		public function setScrollRect(rect:Rectangle):void{
			if(!debugScrollRect){
				this.contentPane.scrollRect = rect;
				
			}
			else{
				this.focusRectHolder.graphics.clear();
