      */
     private function clearLoadingContent():void
     {
+        if (loadingContent is LoaderInfo && LoaderInfo(loadingContent).loader)
+        {
+            try
+            {
+                LoaderInfo(loadingContent).loader.close();
+            }
+            catch (e:Error)
+            {
+                // Ignore 
+            }
+        }
+        
         removeLoadingListeners();
         loadingContent = null;
     }

     *  @private
     */
    mx_internal function loadExternal(url:Object):void
    {   
        // Remove listeners from any previous load instance and clear
        // our reference to any existing load-event  dispatcher.
        clearLoadingContent();
                                
        if (contentLoader)
        {
            // We defer our load request to the configured content loader.

    {        
        if (value != _source)
        {
            // Remove listeners from any previous load instance and clear
            // our reference to any existing load-event dispatcher. This ensures
            // for example that we do not receive further load related events
            // our previous content before we can consider the new source.
            clearLoadingContent();
            
            _source = value;
            sourceInvalid = true;
            invalidateProperties();
            dispatchEvent(new Event("sourceChanged"));
        }
    }
    
