 
             if (head != null)
             {
-                if (head.link == null)
+                if (head.link != null)
+                {
+                    if (isRelativeURL(head.link))
+                    {
+                        try
+                        {
+                            head.link = _directory.resolvePath(head.link).url;
+                        }
+                        catch (error:Error) { /* ignore error */ }
+                    }
+                }
+                else
                 {
                     try
                     {
                         head.link = _directory.resolvePath(key).url;
                     }
-                    catch (error:Error)
-                    {
-                        // ignore error
-                    }
+                    catch (error:Error) { /* ignore error */ }
                 }
 
                 return head;

                }
            };

            FileSystemCacheStorageHelper.save(file, response.body, resultOrErrorCallback);

            return true;
        }


            if (head != null)
            {
                if (isRelativeURL(head.link))
                {
                    try
                    {
                        head.link = _directory.resolvePath(head.link).url;
                    }
                    catch (error:Error) { /* ignore error */ }
                }

                var resultOrErrorCallback:Function = function(value:*=undefined):void
                {
                    if (value == undefined || value is Error)
