diff --git a/lib/backend.py b/lib/backend.py
index e3053e9383f272d663c6eac94c0f869e39ea3eb2..367e89c0a8e79269fbc06c75bc5300476a30e538 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -2023,8 +2023,8 @@ def ExportSnapshot(disk, dest_node, instance, cluster_name, idx, debug):
 
   comprcmd = "gzip"
 
-  destcmd = utils.BuildShellCmd("mkdir -p %s && cat > %s/%s",
-                                destdir, destdir, destfile)
+  destcmd = utils.BuildShellCmd("mkdir -p %s && cat > %s",
+                                destdir, utils.PathJoin(destdir, destfile))
   remotecmd = _GetSshRunner(cluster_name).BuildCmd(dest_node,
                                                    constants.GANETI_RUNAS,
                                                    destcmd)
@@ -2696,7 +2696,7 @@ class HooksRunner(object):
 
 
     subdir = "%s-%s.d" % (hpath, suffix)
-    dir_name = "%s/%s" % (self._BASE_DIR, subdir)
+    dir_name = utils.PathJoin(self._BASE_DIR, subdir)
 
     results = []
 
@@ -2789,7 +2789,7 @@ class DevCacheManager(object):
     if dev_path.startswith(cls._DEV_PREFIX):
       dev_path = dev_path[len(cls._DEV_PREFIX):]
     dev_path = dev_path.replace("/", "_")
-    fpath = "%s/bdev_%s" % (cls._ROOT_DIR, dev_path)
+    fpath = utils.PathJoin(cls._ROOT_DIR, "bdev_%s" % dev_path)
     return fpath
 
   @classmethod
diff --git a/lib/jqueue.py b/lib/jqueue.py
index 1b10b71d29623b404fa7221adf2bc19eea633a6c..62a5f4a5d0c13a6a4773a51ee48bbd918fa3992a 100644
--- a/lib/jqueue.py
+++ b/lib/jqueue.py
@@ -894,8 +894,8 @@ class JobQueue(object):
     @return: the path to the archived job file
 
     """
-    path = "%s/job-%s" % (cls._GetArchiveDirectory(job_id), job_id)
-    return utils.PathJoin(constants.JOB_QUEUE_ARCHIVE_DIR, path)
+    return utils.PathJoin(constants.JOB_QUEUE_ARCHIVE_DIR,
+                          cls._GetArchiveDirectory(job_id), "job-%s" % job_id)
 
   @classmethod
   def _ExtractJobID(cls, name):