      *  @playerversion AIR 2.5 
      *  @productversion Flex 4.5
      */
-    public var symbolIcon:Object;
+    private var _symbolIcon:DisplayObject;
+    
+    /**
+     *  Read-only button symbol graphic. Use commitCurrentState() to specify
+     *  a symbol graphic per-state.
+     * 
+     *  @see #commitCurrentState()
+     */
+    public function get symbolIcon():DisplayObject
+    {
+        return _symbolIcon;
+    }
     
     //--------------------------------------------------------------------------
     //

            setIcon(currentStateIconClass);
            
            // swap symbol based on selection state
            var symbolObj:DisplayObject = (symbolIcon && (symbolIcon is DisplayObject))
                ? DisplayObject(symbolIcon) : null;
            var hasSymbol:Boolean = (symbolObj) && contains(symbolObj);
            
            symbolIcon = null;
            
            // remove the old symbol
            if (hasSymbol)

                // no current symbol exists
                // or is existing symbol different than the current symbol
                if ((currentSymbolClass == null)
                    || !(_symbolIcon is currentSymbolClass))
                {
                    removeChild(_symbolIcon);
                    _symbolIcon = null;
                    
                    invalidateDisplayList();
                }
            }
            
            // add the current symbol
            if ((_symbolIcon == null) && (currentSymbolClass != null))
            {
                var currentSymbolInstance:Object = new currentSymbolClass();
                
                if (currentSymbolInstance is DisplayObject)
                {
                    _symbolIcon = DisplayObject(currentSymbolInstance);
                    addChild(_symbolIcon);
                    
                    invalidateDisplayList();
                }
            }
        }
    }
