             
         // Grab a bitmap of the focused object
         if (!focusObject)
-			focusObject = focusManager.getFocus();
+			focusObject = focusManager.getFocus() as SkinnableComponent;
+			
         var bitmapData:BitmapData = new BitmapData(
                     focusObject.width + (FOCUS_THICKNESS * 2), 
                     focusObject.height + (FOCUS_THICKNESS * 2), true, 0);
         var m:Matrix = new Matrix();
         
         // If the focus object already has a focus skin, make sure it is hidden.
-        if (focusObject is SkinnableComponent && focusObject.mx_internal::focusObj)
+        if (focusObject.mx_internal::focusObj)
             focusObject.mx_internal::focusObj.visible = false;
        
         // Temporary solution for focus drawing on CheckBox and RadioButton components.

        bitmapData.draw(focusObject as IBitmapDrawable, m);
        
        // Show the focus skin, if needed.
        if (focusObject is SkinnableComponent && focusObject.mx_internal::focusObj)
            focusObject.mx_internal::focusObj.visible = true;
        
        // Show the label, if needed.
        if (hidLabelElement)
            focusObject.labelElement.displayObject.visible = true;
        
        // Special case for Scroller - fill the entire rect.
        // TODO: Figure out a better solution.

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
	public function get focusObject():SkinnableComponent
	{
	    return _focusObject;
	}
	
	public function set focusObject(value:SkinnableComponent):void
	{
	    _focusObject = value;
        
        // Add an "updateComplete" listener to the skin so we can redraw
        // whenever the skin is drawn.
        if (_focusObject.skin)
            _focusObject.skin.addEventListener("updateComplete", 
                    skin_updateCompleteHandler, false, 0, true);
	}
    
    //--------------------------------------------------------------------------
    //
