      *  @productversion Flex 3
      */
     public var target:Object;
+    
+    /**
+     *  The cached target for which we applied our override.
+     *  We keep track of the applied target while applied since
+     *  our target may be swapped out in the owning document and 
+     *  we want to make sure we roll back the correct (original) 
+     *  element. 
+     *
+     *  @private
+     */
+    private var appliedTarget:Object;
 
     //----------------------------------
     //  value

     */
    public function remove(parent:UIComponent):void
    {   
        var obj:* = getOverrideContext(target, parent);
        if (obj != null && applied)
        {
            var propName:String = (PSEUDONYMS[name] && (PSEUDONYMS[name] in target)) ?

	        // Clear our flags and override context.
	        applied = false;
	        parentContext = null;
	        appliedTarget = null;
        }
    }

