diff --git a/hggit/__init__.py b/hggit/__init__.py
index a2eccdeed26d809e084ec211858c711b45d31b56_aGdnaXQvX19pbml0X18ucHk=..c249de74742b3cf2d90582c3f6407a4daf442e26_aGdnaXQvX19pbml0X18ucHk= 100644
--- a/hggit/__init__.py
+++ b/hggit/__init__.py
@@ -21,6 +21,7 @@
 import os
 
 # local modules
+import compat
 import gitrepo
 import hgrepo
 import overlay
@@ -84,6 +85,7 @@
 buglink = 'https://bitbucket.org/durin42/hg-git/issues'
 
 cmdtable = {}
+configtable = {}
 try:
     from mercurial import registrar
     command = registrar.command(cmdtable)
@@ -87,6 +89,9 @@
 try:
     from mercurial import registrar
     command = registrar.command(cmdtable)
+    configitem = registrar.configitem(configtable)
+    compat.registerconfigs(configitem)
+
 except (ImportError, AttributeError):
     command = cmdutil.command(cmdtable)
 
diff --git a/hggit/compat.py b/hggit/compat.py
index a2eccdeed26d809e084ec211858c711b45d31b56_aGdnaXQvY29tcGF0LnB5..c249de74742b3cf2d90582c3f6407a4daf442e26_aGdnaXQvY29tcGF0LnB5 100644
--- a/hggit/compat.py
+++ b/hggit/compat.py
@@ -65,7 +65,16 @@
 CONFIG_DEFAULTS = {
 }
 
+hasconfigitems = False
+
+def registerconfigs(configitem):
+    global hasconfigitems
+    hasconfigitems = True
+    for section, items in CONFIG_DEFAULTS.iteritems():
+        for item, default in items.iteritems():
+            configitem(section, item, default=default)
+
 def config(ui, subtype, section, item):
     if subtype == 'string':
         subtype = ''
     getconfig = getattr(ui, 'config' + subtype)
@@ -68,5 +77,7 @@
 def config(ui, subtype, section, item):
     if subtype == 'string':
         subtype = ''
     getconfig = getattr(ui, 'config' + subtype)
+    if hasconfigitems:
+        return getconfig(section, item)
     return getconfig(section, item, CONFIG_DEFAULTS[section][item])