diff --git a/git_handler.py b/git_handler.py
index 814499406d4ce999f28fc3a05cc3260d1676a690_Z2l0X2hhbmRsZXIucHk=..88fdcb23294efba55037a02f3e37c1303c7e66f4_Z2l0X2hhbmRsZXIucHk= 100644
--- a/git_handler.py
+++ b/git_handler.py
@@ -189,7 +189,7 @@
         return dict(filter(is_local_head, refs.items()))
 
     def export_git_objects(self):
-        self.manifest_renames = {}
+        self.previous_entries = {}
         self.written_trees = {}
         self.ui.status(_("importing Hg objects into Git\n"))
         total = len(self.repo.changelog)
@@ -332,6 +332,8 @@
     def write_git_tree(self, ctx):
         trees = {}
         man = ctx.manifest()
+        ctx_id = hex(ctx.node())
+
         renames = []
         for filenm, nodesha in man.iteritems():
             file_id = hex(nodesha)
@@ -335,4 +337,8 @@
         renames = []
         for filenm, nodesha in man.iteritems():
             file_id = hex(nodesha)
+            if ctx_id not in self.previous_entries:
+                self.previous_entries[ctx_id] = {}
+            self.previous_entries[ctx_id][filenm] = file_id
+
             # write blob if not in our git database
@@ -338,9 +344,14 @@
             # write blob if not in our git database
-            fctx = ctx.filectx(filenm) 
-            filerename = None
-            if file_id in self.manifest_renames:
-                filerename = self.manifest_renames[file_id]
-            else:
+            fctx = ctx.filectx(filenm)
+
+            same_as_last = False
+            for par in ctx.parents():
+                par_id = hex(par.node())
+                if par_id in self.previous_entries:
+                    if filenm in self.previous_entries[par_id]:
+                        if self.previous_entries[par_id][filenm] == file_id:
+                            same_as_last = True
+            if not same_as_last:
                 rename = fctx.renamed()
                 if rename:
                     filerename, sha = rename
@@ -344,11 +355,7 @@
                 rename = fctx.renamed()
                 if rename:
                     filerename, sha = rename
-                    self.manifest_renames[file_id] = filerename
-                else:
-                    self.manifest_renames[file_id] = None                    
-            if filerename:
-                renames.append((filerename, filenm))
+                    renames.append((filerename, filenm))
             is_exec = 'x' in fctx.flags()
             is_link = 'l' in fctx.flags()
             blob_sha = self.map_git_get(file_id)