diff --git a/hggit/git_handler.py b/hggit/git_handler.py
index c0c1a96ef56df4589e63a4e60b67fc5ccd0f4c34_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..f3f344aac42be16d02458752c422e5f4a8d3c599_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644
--- a/hggit/git_handler.py
+++ b/hggit/git_handler.py
@@ -106,4 +106,11 @@
 
         self.branch_bookmark_suffix = ui.config('git', 'branch_bookmark_suffix')
 
+        self._map_git_real = {}
+        self._map_hg_real = {}
+        self.load_tags()
+
+    @property
+    def _map_git(self):
+      if not self._map_git_real:
         self.load_map()
@@ -109,5 +116,11 @@
         self.load_map()
-        self.load_tags()
+      return self._map_git_real
+
+    @property
+    def _map_hg(self):
+      if not self._map_hg_real:
+        self.load_map()
+      return self._map_hg_real
 
     # make the git data directory
     def init_if_missing(self):
@@ -143,8 +156,6 @@
         return self._map_hg.get(hgsha)
 
     def load_map(self):
-        self._map_git = {}
-        self._map_hg = {}
         if os.path.exists(self.repo.join(self.mapfile)):
             for line in self.repo.opener(self.mapfile):
                 gitsha, hgsha = line.strip().split(' ', 1)
@@ -148,8 +159,8 @@
         if os.path.exists(self.repo.join(self.mapfile)):
             for line in self.repo.opener(self.mapfile):
                 gitsha, hgsha = line.strip().split(' ', 1)
-                self._map_git[gitsha] = hgsha
-                self._map_hg[hgsha] = gitsha
+                self._map_git_real[gitsha] = hgsha
+                self._map_hg_real[hgsha] = gitsha
 
     def save_map(self):
         file = self.repo.opener(self.mapfile, 'w+', atomictemp=True)