                 {
                     removeElement(iconGroup);
                     addElement(IVisualElement(labelDisplay));
+                    
+                    if (labelDisplay is IStyleClient)
+                        IStyleClient(labelDisplay).setStyle("textAlign", prevTextAlign);
                 }
+            }
+        }
+        
+        /**
+         *  @private
+         */
+        private function alignLabelForPlacement():void
+        {
+            if (labelDisplay is IStyleClient)
+            {
+                var iconPlacement:String = getStyle("iconPlacement");
+                
+                var alignment:String = 
+                    iconPlacement == IconPlacement.LEFT ||
+                    iconPlacement == IconPlacement.RIGHT ? "left" : "center"
+                
+                IStyleClient(labelDisplay).setStyle("textAlign", alignment);
             }
         }
         

            if (construct)
            {
                if (!iconDisplay)
                {
                    iconDisplay = new BitmapImage();
                    iconDisplay.verticalCenter = 0;
                    iconDisplay.horizontalCenter = 0;
                }
                
                if (!iconGroup)
                    iconGroup = new Group();
                                            
                iconGroup.addElement(iconDisplay);
                iconGroup.addElement(IVisualElement(labelDisplay));
                addElement(iconGroup);
            }
            else
            {

         */ 
        private var iconGroup:Group;
        
        /**
         * @private
         * Saves our label's previous textAlign value.
         */ 
        private var prevTextAlign:String;
        
        //--------------------------------------------------------------------------
        //
        //  Properties
