diff --git a/support/hg/arc-hg.py b/support/hg/arc-hg.py
--- a/support/hg/arc-hg.py
+++ b/support/hg/arc-hg.py
@@ -273,8 +273,21 @@
 
   markers = []
 
-  source, branches = parseurl(ui.expandpath(source))
-  remote = hg.peer(repo, opts, source)
+  # Determine the remote to use based on the default path configured in
+  # [ui.paths] for this local repository.
+  #
+  # The expandpath function in the ui module was deprecated in 5.8 and removed
+  # in 6.4. NOTE: There is also an expandpath function in mercurial.util (not
+  # plural mercurial.utils...) however that function behaves differently from
+  # the old ui.expandpath. Reviewing the source comments for the old
+  # ui.expandpath function points to using urilutils.get_ functions.
+  try:
+    remote_path, branches = parseurl(ui.expandpath(source))
+  except:
+    from mercurial import utils
+    origsource, remote_path, branch = utils.urlutil.get_clone_path(ui, source)
+
+  remote = hg.peer(repo, opts, remote_path)
 
   with remote.commandexecutor() as e:
     branchmap = e.callcommand(b'branchmap', {}).result()