         {
             if (_mask && _mask.parent === this)
             {
-				overlay.removeDisplayObject(_mask);
+                overlay.removeDisplayObject(_mask);
             }     
             
             _mask = value;

            layout = new BasicLayout();
    }

	/**
	 *  @private
	 */ 
	override protected function commitProperties():void
	{
		super.commitProperties();
		
		// Cleanup the _overlay object when there are no more overlay objects
		if (_overlay && _overlay.numDisplayObjects == 0)
			destroyOverlay();
	}

    /**
     *  @private

        }
    }

    //----------------------------------
    //  overlay
    //----------------------------------

    /**
     *  @private
     *  Storage for the overlay property 
     */
    mx_internal var _overlay:DisplayLayer;

    [Inspectable(category="General")]

    /**
     *  The overlay plane for this Group.
     *  All objects of the overlay plane render on top of the Group elements.
     *  Don't hold on to this object, as Group destroys and creates it on demand.
     *   
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get overlay():DisplayLayer
    {
        if (!_overlay)
        {
            _overlay = new DisplayLayer();
            _overlay.addEventListener(DisplayLayerObjectExistenceEvent.OBJECT_ADD, overlay_objectAdd);
            _overlay.addEventListener(DisplayLayerObjectExistenceEvent.OBJECT_REMOVE, overlay_objectRemove);
            
            // Invalidate properties, so that if nothing was actually added to the
            // overlay object, we'll clean it up:
            invalidateProperties();
        }
        return _overlay;
    }
    
    /**
     *  @private
     *  Event listener to add overlay objects when added to the overlay DisplayLayer.
     */
    private function overlay_objectAdd(event:DisplayLayerObjectExistenceEvent):void
    {
        super.addChildAt(event.object, event.index + numChildren - _overlay.numDisplayObjects + 1);
    }
    
    /**
     *  @private
     *  Event listener to remove overlay objects when removed from the overlay
     *  DisplayLayer.
     */
    private function overlay_objectRemove(event:DisplayLayerObjectExistenceEvent):void
    {
        // Remove the object from the display list
        super.removeChild(event.object);
        
        // Is this the last display object?
        if (_overlay.numDisplayObjects == 1)
            invalidateProperties();
    }
    
    /**
     *  Destroys the overlay object. This method gets called on commitProperties
     *  when the overlay doesn't contain any objects. 
     */
    private function destroyOverlay():void
    {
        _overlay.removeEventListener(DisplayLayerObjectExistenceEvent.OBJECT_ADD, overlay_objectAdd);
        _overlay.removeEventListener(DisplayLayerObjectExistenceEvent.OBJECT_REMOVE, overlay_objectRemove);
        _overlay = null;
    }

    //----------------------------------
    //  resizeMode
    //----------------------------------
    
