diff --git a/hggit/git_handler.py b/hggit/git_handler.py
index 9c6bd4102ef5b7572a04969dc5bdfd39b0402284_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..81e5e8e0185c2308c639780c54f6d08287f99454_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644
--- a/hggit/git_handler.py
+++ b/hggit/git_handler.py
@@ -207,5 +207,5 @@
             self._remote_refs.update([(name, bin(sha)) for sha, name in td])
 
     def save_remote_refs(self):
-        tf = open(self.repo.join(self.remote_refs_file), 'wb')
+        file = self.repo.opener(self.remote_refs_file, 'w+', atomictemp=True)
         for tag, node in self.remote_refs.iteritems():
@@ -211,6 +211,7 @@
         for tag, node in self.remote_refs.iteritems():
-            tf.write('%s %s\n' % (hex(node), tag))
-        tf.close()
+            file.write('%s %s\n' % (hex(node), tag))
+        # If this complains, atomictempfile no longer has close
+        file.close()
 
     ## END FILE LOAD AND SAVE METHODS