                 loaderContext.checkPolicyFile = true;
                 loader.load(urlRequest, loaderContext);
             }
-            
-            // Create ContentRequest instance to return to caller.
-            contentRequest = new ContentRequest(this, loader.contentLoaderInfo);
-            
-            // Now cache our new loader info if applicable.
-            if (!cacheEntry && enableCaching) 
-                addCacheEntry(key, loader.contentLoaderInfo);
         }
         else
         {
-            // Found a valid cache entry. Return a content request proxy and
-            // promote in our MRU list.
-            contentRequest = new ContentRequest(this, cacheEntry.value as LoaderInfo, true);
+            // Found a valid cache entry. Create a ContentRequest instance.
+            contentRequest = new ContentRequest(this, cacheEntry.value as LoaderInfo, 
+                true, cacheEntry.complete);
+            
+            // Promote in our MRU list.
             var node:LinkedListNode = cacheEntries.remove(cacheEntry);
             cacheEntries.unshift(node);
         }

     *  @private
     */
    public var source:Object;
}

/**

            var urlRequest:URLRequest = source is URLRequest ? 
                source as URLRequest : new URLRequest(source as String);
            
            // Cache our new LoaderInfo if applicable.
            if (!cacheEntry && enableCaching) 
            {
                addCacheEntry(key, loader.contentLoaderInfo);
                
                // Mark entry as complete, we'll mark complete later 
                // once fully loaded.
                var entry:CacheEntryNode = cachedData[key];
                if (entry)
                    entry.complete = false;
            }
            
            // Create ContentRequest instance to return to caller.
            contentRequest = new ContentRequest(this, loader.contentLoaderInfo);
            
            if (enableQueueing)
            {
                // Queue load request.
