diff --git a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
index 447252a..bb8fde4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
@@ -16,6 +16,7 @@
 
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_HEADS;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
@@ -467,6 +468,8 @@
         return repos.get(name);
       }
 
+      name = urlToRepoKey(canonicalWebUrl, name);
+
       Repository repo = repoManager.openRepository(new Project.NameKey(name));
       repos.put(name, repo);
       return repo;
@@ -480,4 +483,18 @@
       repos.clear();
     }
   }
+
+  @VisibleForTesting
+  static String urlToRepoKey(URI baseUrl, String name) {
+    if (name.startsWith(baseUrl.toString())) {
+      // It would be nice to parse the URL and do relativize on the Path, but
+      // I am lazy, and nio.Path considers the file system and symlinks.
+      name = name.substring(baseUrl.toString().length());
+      while (name.startsWith("/")) {
+        name = name.substring(1);
+      }
+    }
+    return name;
+  }
+
 }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestIT.java b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestIT.java
index 9a6cbe3..4618996 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestIT.java
@@ -358,5 +358,18 @@
     assertThat(subUrl).doesNotContain("../");
   }
 
+  @Test
+  public void testToRepoKey() {
+    URI base = URI.create("https://gerrit-review.googlesource.com");
+    assertThat(
+        SuperManifestRefUpdatedListener.urlToRepoKey(base,
+            "https://gerrit-review.googlesource.com/repo")).isEqualTo("repo");
+    assertThat(SuperManifestRefUpdatedListener.urlToRepoKey(base, "repo")).isEqualTo("repo");
+    assertThat(
+        SuperManifestRefUpdatedListener.urlToRepoKey(
+            URI.create("https://gerrit-review.googlesource.com/"),
+            "https://gerrit-review.googlesource.com/repo")).isEqualTo("repo");
+  }
+
   // TODO - should add tests for all the error handling in configuration parsing?
 }
