         if (destructionPolicy == "auto")
             destroyInstance();
             
+        // Clear our flags and override context.
         added = false;
+        applied = false;
+        parentContext = null;
     }
        
     /**

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function initialize():void
    {
        if (creationPolicy == ContainerCreationPolicy.AUTO)
            createInstance();

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    override public function remove(parent:UIComponent):void
    {
        var dest:* = getOverrideContext(destination, parent);
        var localItems:Array;
        var i:int;
        
        if (!added)
        {
            if (dest == null)
            {
                // It seems our override is no longer active, but we were never
                // able to successfully apply ourselves, so remove our context
                // listener if applicable.
                removeContextListener();
                applied = false;
                parentContext = null;
            }
            return;
        }
                    
        // Coerce to array if not already an array, or we wish
        // to treat the array as *the* item to add (isArray == true)
