                 labelDisplayShadow.text = labelDisplay.text;
             
             if (iconInstance)
-            {                
-                iconInstance.x = Math.max(0, Math.round(iconX));
-                iconInstance.y = Math.max(0, Math.round(iconY));
+            {
+                resizePart(iconInstance, iconWidth, iconHeight);
+                positionPart(iconInstance, Math.max(0, Math.round(iconX)), Math.max(0, Math.round(iconY))); 
             }        
         }
         

            
            if (iconInstance)
            {
                if (iconInstance is UIComponent)
                {
                    iconWidth = UIComponent(iconInstance).getExplicitOrMeasuredWidth();
                    iconHeight = UIComponent(iconInstance).getExplicitOrMeasuredHeight();
                }
                else
                {

            }
            
            labelDisplay.commitStyles();
            resizePart(labelDisplay, labelWidth, labelHeight);
            positionPart(labelDisplay, Math.max(0, Math.round(labelX)), Math.max(0, Math.round(labelY))); 
            
            // before truncating text, we need to reset it to its original value
            if (hostComponent && labelDisplay.isTruncated)
