     //--------------------------------------------------------------------------
 
     /**
-     *  IOverride interface method; this class implements it as an empty method.
-     * 
-     *  @copy IOverride#initialize()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function initialize():void
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function apply(parent:UIComponent):void
     {
-    }
-
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function apply(parent:UIComponent):void
-    {
+        parentContext = parent;
         var obj:* = getOverrideContext(target, parent);
         if (obj != null)
         {

     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function remove(parent:UIComponent):void
    {
        var obj:* = getOverrideContext(appliedTarget, parent);
        if (obj != null)
        {
	        if (handlerFunction != null)
	            obj.removeEventListener(name, handlerFunction);

	            installedHandlers[obj][name] = handlerFunction;
	        }
        }
        else if (!applied)
        {
            // Our target context is unavailable so we attempt to register
            // a listener on our parent document to detect when/if it becomes
            // valid.
            addContextListener(target);
        }
        
        // Save state in case our value or target is changed while applied. This
        // can occur when our value property is databound or when a target is 
        // deferred instantiated.
        applied = true;
    }

    /**
