         var sharedDisplayObject:ISharedDisplayObject = this;
         if (sharedDisplayObject.redrawRequested)
             graphics.clear();
+        
+        // Render a transparent background fill as necessary to support the mouseOpaque flag.
+        if (_mouseOpaque && mouseEventReferenceCount != 0)
+        {
+            graphics.beginFill(0xFFFFFF, 0);
+            graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
+            graphics.endFill();
+        }
         
         // Iterate through the graphic elements. If an element has a displayObject that has been 
         // invalidated, then validate all graphic elements that draw to this displayObject. 


import flash.display.BlendMode;
import flash.display.DisplayObject;
import flash.geom.Rectangle;

import spark.components.supportClasses.GroupBase;
import mx.core.Container;
import mx.core.IFontContextComponent;
import mx.core.ILayoutElement;
import mx.core.IUITextField;
import mx.core.IVisualElement;
import mx.core.IVisualElementContainer;
import mx.core.mx_internal;
import mx.core.UIComponent;
import spark.events.ElementExistenceEvent;
import spark.core.IGraphicElement;
import spark.core.ISharedDisplayObject;
import spark.primitives.supportClasses.TextGraphicElement;
import spark.layouts.supportClasses.LayoutBase;
import mx.styles.ISimpleStyleClient;
import mx.styles.IStyleClient;
import mx.styles.StyleProtoChain;

use namespace mx_internal;


    }
    
    //----------------------------------
    //  mouseOpaque
    //----------------------------------
    
    /**
     *  @private
     *  Storage for the mouseOpaque property
     */
    private var _mouseOpaque:Boolean = true;
    private var mouseEventReferenceCount:int;

    [Inspectable(category="General")]
    
    /**
     *  When set to true the mouseOpaque flag ensures that the entire bounds
     *  of the Group are opaque to all mouse events such as clicks, rollOvers,
     *  etc.
     * 
     *  @default true
     *  
     *  @langversion 4.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get mouseOpaque():Boolean
    {
        return _mouseOpaque;
    }
    
    /**
     *  @private
     */
    public function set mouseOpaque(value:Boolean):void
    {
        if (value == _mouseOpaque)
            return;
            
        _mouseOpaque = value;
        if (mouseEventReferenceCount != 0)
            invalidateDisplayList();
    }
    
    //----------------------------------
    //  mxmlContent
    //----------------------------------
    
