diff --git a/__init__.py b/__init__.py
index 89dcbfaca32b038a010b264372838dea0c11f4a3_X19pbml0X18ucHk=..211fa793d74ff76067b7347e416e65016e0e9bc0_X19pbml0X18ucHk= 100644
--- a/__init__.py
+++ b/__init__.py
@@ -14,5 +14,5 @@
 
 '''
 
-from mercurial import commands, extensions, hg
+from mercurial import commands, extensions, hg, util
 from mercurial.i18n import _
@@ -18,4 +18,8 @@
 from mercurial.i18n import _
+
+from dulwich.repo import Repo
+from dulwich.errors import NotGitRepository
+
 import gitrepo, hgrepo
 from git_handler import GitHandler
 
@@ -24,6 +28,18 @@
 hg.schemes['git'] = gitrepo
 hg.schemes['git+ssh'] = gitrepo
 
+_oldlocal = hg.schemes['file']
+
+def _local(path):
+    p = util.drop_scheme('file', path)
+    try:
+        Repo(p)
+        return gitrepo
+    except NotGitRepository:
+        return _oldlocal(path)
+
+hg.schemes['file'] = _local
+
 def reposetup(ui, repo):
     klass = hgrepo.generate_repo_subclass(repo.__class__)
     repo.__class__ = klass
diff --git a/tests/test-git-clone b/tests/test-git-clone
index 89dcbfaca32b038a010b264372838dea0c11f4a3_dGVzdHMvdGVzdC1naXQtY2xvbmU=..211fa793d74ff76067b7347e416e65016e0e9bc0_dGVzdHMvdGVzdC1naXQtY2xvbmU= 100755
--- a/tests/test-git-clone
+++ b/tests/test-git-clone
@@ -37,5 +37,4 @@
 git add beta
 commit -m 'add beta'
 
-# dulwich does not presently support local git repos, workaround
 cd ..
@@ -41,7 +40,2 @@
 cd ..
-git daemon --base-path="$(pwd)"\
- --listen=localhost\
- --export-all\
- --pid-file=gitdaemon.pid \
- --detach --reuseaddr
 
@@ -47,7 +41,7 @@
 
-hg clone git://localhost/gitrepo hgrepo
+hg clone gitrepo hgrepo
 cd hgrepo
 hg log --graph
 
 echo % we should have some bookmarks
 hg book
@@ -49,8 +43,5 @@
 cd hgrepo
 hg log --graph
 
 echo % we should have some bookmarks
 hg book
-
-cd ..
-kill `cat gitdaemon.pid`
diff --git a/tests/test-git-clone.out b/tests/test-git-clone.out
index 89dcbfaca32b038a010b264372838dea0c11f4a3_dGVzdHMvdGVzdC1naXQtY2xvbmUub3V0..211fa793d74ff76067b7347e416e65016e0e9bc0_dGVzdHMvdGVzdC1naXQtY2xvbmUub3V0 100644
--- a/tests/test-git-clone.out
+++ b/tests/test-git-clone.out
@@ -1,6 +1,6 @@
 Initialized empty Git repository in gitrepo/.git/
 
-fetching from : git://localhost/gitrepo
+fetching from : gitrepo
 importing Hg objects into Git
 Counting objects: 6, done.
 Compressing objects:  33% (1/3)   
Compressing objects:  66% (2/3)   
Compressing objects: 100% (3/3)   
Compressing objects: 100% (3/3), done.