diff --git a/salt/fileclient.py b/salt/fileclient.py
index <HASH>..<HASH> 100644
--- a/salt/fileclient.py
+++ b/salt/fileclient.py
@@ -249,14 +249,13 @@ class Client(object):
                 else:
                     return ''
         else:
-            dest = os.path.join(
-                self.opts['cachedir'],
-                'extrn_files',
-                env,
-                os.path.join(
+            dest = os.path.normpath(
+                os.sep.join([
+                    self.opts['cachedir'],
+                    'extrn_files',
+                    env,
                     url_data.netloc,
-                    os.path.relpath(os.path.relpath(url_data.path, '/'), '..')
-                ))
+                    url_data.path]))
             destdir = os.path.dirname(dest)
             if not os.path.isdir(destdir):
                 os.makedirs(destdir)
Work around Python <I> bug involving relative paths from root

* In Python <I>, calling `os.path.relpath('/foo/bar', '/')` incorrectly
  returns a path `../foo/bar`. In Python <I> this is fixed, but this
  commit adds a workaround that works in both <I> and <I>.