diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
index 16ec37411db5696ce981d18296e93bde71e2d7cb_bWVyY3VyaWFsL3NjbXV0aWwucHk=..a41fd730f2305410e3f03f2f8400d66f2c9da0fe_bWVyY3VyaWFsL3NjbXV0aWwucHk= 100644
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -229,7 +229,6 @@
         if expand:
             base = os.path.realpath(util.expandpath(base))
         self.base = base
-        self.basesep = self.base + os.sep
         self._setmustaudit(audit)
         self.createmode = None
         self._trustnlink = None
@@ -332,8 +331,9 @@
 
     def join(self, path):
         if path:
-            return path.startswith('/') and path or (self.basesep + path)
-        return self.base
+            return os.path.join(self.base, path)
+        else:
+            return self.base
 
 opener = vfs