                     drawnDisplayObject.mask = _mask;
                 }
             }
+			
+			if (luminositySettingsChanged)
+			{
+				luminositySettingsChanged = false; 
+				
+				if (_mask && _maskType == MaskType.LUMINOSITY && _mask.filters.length > 0)
+				{
+					// Grab the shader filter and clear out the mask 
+					var shaderFilter:ShaderFilter = _mask.filters[0];
+					
+					if (shaderFilter && (shaderFilter.shader is LuminosityMaskShader))
+					{
+						// Clear out the mask's filters because we could potentially
+						// have a rendering change by setting the mode dynamically 
+						// while the filters have been set. 
+						_mask.filters = []; 
+						
+						// Reset the mode property  
+						LuminosityMaskShader(shaderFilter.shader).mode = calculateLuminositySettings();
+						
+						// Re-apply the filter to the mask 
+						_mask.filters = [shaderFilter];
+					}
+				}
+			}
 
             if (maskTypeChanged || displayObjectChanged)
             {

            return;

        _luminosityClip = value;
    }
    
    //----------------------------------

    /**
     *  @private
     */
    private var luminositySettingsChanged:Boolean;

    [Inspectable(category="General", enumeration="true,false", defaultValue="false")]
    
    /**
     *  A property that controls the calculation of the RGB 
	 *  color value of a graphic element being masked by 
	 *  a luminosity mask. If true, the RGB color value of a  
	 *  pixel in the source content is inverted and multipled  
	 *  by the corresponding region in the mask. If false, 
	 *  the source content's pixel's RGB color value is used 
	 *  directly. 
	 * 
	 *  @default false 
	 *  @see #maskType 
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
