      *  @private
      *  Storage for the blendMode property.
      */
-    private var _blendMode:String = BlendMode.NORMAL;
+    private var _blendMode:String = "auto"; 
     
     /**
      *  @private
      */
     private var blendModeChanged:Boolean;
-
-    [Inspectable(category="General", enumeration="add,alpha,darken,difference,erase,hardlight,invert,layer,lighten,multiply,normal,subtract,screen,overlay,colordodge,colorburn,exclusion,softlight,hue,saturation,color,luminosity", defaultValue="normal")]
+    private var blendModeExplicitlySet:Boolean = false;
+
+    [Inspectable(category="General", enumeration="auto,add,alpha,darken,difference,erase,hardlight,invert,layer,lighten,multiply,normal,subtract,screen,overlay,colordodge,colorburn,exclusion,softlight,hue,saturation,color,luminosity", defaultValue="auto")]
 
     /**
      *  A value from the BlendMode class that specifies which blend mode to use. 
+     * 
+     *  @default auto
      * 
      *  @see flash.display.DisplayObject#blendMode
      *  @see flash.display.BlendMode

     */
    public function set blendMode(value:String):void
    {
        // FIXME (dsubrama): Temporarily exit when blendMode is set
    	// to one of the AIM blendModes; support for this will come
    	// shortly. 
        if (value == _blendMode || value == "colordodge" || 
        	value =="colorburn" || value =="exclusion" || 
        	value =="softlight" || value =="hue" || 
        	value =="saturation" || value =="color" 
        	|| value =="luminosity")
            return;

        var previous:Boolean = needsDisplayObject;
        _blendMode = value;
        if (previous != needsDisplayObject)
            invalidateDisplayObjectSharing();
        
        blendModeChanged = true;
        invalidateProperties();
    }

    //----------------------------------

    {
        var result:Boolean = (alwaysCreateDisplayObject ||
        (_filters && _filters.length > 0) || 
            _blendMode != BlendMode.NORMAL || _mask ||
            (layoutFeatures != null && (layoutFeatures.layoutScaleX != 1 || layoutFeatures.layoutScaleY != 1 || layoutFeatures.layoutScaleZ != 1 ||
            layoutFeatures.layoutRotationX != 0 || layoutFeatures.layoutRotationY != 0 || layoutFeatures.layoutRotationZ != 0 ||
            layoutFeatures.layoutZ  != 0)) ||  
