             
         // 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.

            
        return obj is classDefCache[className];
    }
}
}        

        rect.x = rect.y = 0;
        rect.width = bitmapData.width;
        rect.height = bitmapData.height;
        // If the focusObject has an errorString, use "errorColor" instead of "focusColor" 
        if (focusObject.errorString != null && focusObject.errorString != "") 
        {
            glowFilter.color = focusObject.getStyle("errorColor");
        }
        else
        {
            glowFilter.color = focusObject.getStyle("focusColor");
        }
        bitmapData.applyFilter(bitmapData, rect, filterPt, glowFilter); 
               
        if (!bitmap)
