                 // able to successfully apply ourselves, so remove our context
                 // listener if applicable.
                 removeContextListener();
-                applied = false;
-                parentContext = null;
             }
+            else if (_waitingForDeferredContent)
+            {
+                // Or we were waiting around for deferred content of our target
+                // to be created and it never happened, so we'll stop listening
+                // for now.
+                removeCreationCompleteListener();
+            }
+            applied = false;
+            parentContext = null;
             return;
         }
                     

        
        if ( (propertyName == null || propertyName == "mxmlContent") && (dest is IVisualElementContainer))
        {
            addItemsToContentHolder(dest as IVisualElementContainer, localItems);
        }
        else if (propertyName == null && dest is IChildList)
        {

            dest[propertyName] = value;
        }
    }
    
    /**
     *  @private
     *  We've detected that our IDeferredContentOwnder target has created its
     *  content, so it's safe to apply our override content now.
     */
    private function onDestinationContentCreated(e:Event):void
    {
        if (parentContext)
        {
            removeCreationCompleteListener();
            apply(parentContext);
        }   
    }
    
    /**
     *  @private
     *  Remove our contentCreationComplete listener.
     */
    private function removeCreationCompleteListener():void
    {
        if (parentContext)
        {
            parentContext.removeEventListener("contentCreationComplete", onDestinationContentCreated);
            _waitingForDeferredContent = false;
        }   
    }
}

}
