diff --git a/dulwich/repo.py b/dulwich/repo.py
index 2fa3ac77598394bdabf4fa01ab58646c25911f7a_ZHVsd2ljaC9yZXBvLnB5..33da6875a5349ed2138ca1b01b2d8af4fd676bae_ZHVsd2ljaC9yZXBvLnB5 100644
--- a/dulwich/repo.py
+++ b/dulwich/repo.py
@@ -289,5 +289,6 @@
 
     def remote_refs(self, remote_name):
         ret = {}
-        for root, dirs, files in os.walk(os.path.join(self.controldir(), 'refs', 'remotes', remote_name)):
+        r = os.path.join(self.controldir(), 'refs', 'remotes', remote_name)
+        for root, dirs, files in os.walk(r):
             for name in files:
@@ -293,5 +294,7 @@
             for name in files:
-                ret[name] = self._get_ref(os.path.join(root, name))
+                if root != r:
+                    name = root[len(r) + 1:] + "/" + name
+                ret[name] = self._get_ref(os.path.join(r, name))
         return ret
 
     def head(self):