         // Size the FXG background   
         if (changeFXGSkin)
         {
-            applyFXG();
             changeFXGSkin = false;
+            
+            if (bgImg)
+                removeChild(bgImg);
+            bgImg = new backgroundClass();
+            addChildAt(bgImg, 0);
         }
         
         if (bgImg != null) 

     *  @private 
     */
    override protected function commitCurrentState():void
    {    
        // TODO (jszeto) Don't use previousState and use "is" checks in applyFXG
        
        // Over and up states are the same
        if ((currentState == "down" && 
            (previousState == "up" || previousState == "over")) ||
            (previousState == "down" && 
                (currentState == "up" || currentState == "over")))
        {
            changeFXGSkin = true;
            invalidateDisplayList();
        }
    }
     
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void

        // The label and icon should be placed on top of the FXG skins
        super.updateDisplayList(unscaledWidth, unscaledHeight);
    }

}
}