diff --git a/editor.py b/editor.py
index a297470..34c9ad1 100644
--- a/editor.py
+++ b/editor.py
@@ -78,7 +78,11 @@
 
       if subprocess.Popen(editor + [path]).wait() != 0:
         raise EditorError()
-      return open(path).read()
+      fd = open(path)
+      try:
+        return read()
+      finally:
+        fd.close()
     finally:
       if fd:
         os.close(fd)
diff --git a/git_config.py b/git_config.py
index 7aad80d..7e642a4 100644
--- a/git_config.py
+++ b/git_config.py
@@ -219,7 +219,11 @@
       return None
     try:
       Trace(': unpickle %s', self.file)
-      return cPickle.load(open(self._pickle, 'r'))
+      fd = open(self._pickle, 'rb')
+      try:
+        return cPickle.load(fd)
+      finally:
+        fd.close()
     except IOError:
       os.remove(self._pickle)
       return None
@@ -229,9 +233,11 @@
 
   def _SavePickle(self, cache):
     try:
-      cPickle.dump(cache,
-                   open(self._pickle, 'w'),
-                   cPickle.HIGHEST_PROTOCOL)
+      fd = open(self._pickle, 'wb')
+      try:
+        cPickle.dump(cache, fd, cPickle.HIGHEST_PROTOCOL)
+      finally:
+        fd.close()
     except IOError:
       os.remove(self._pickle)
     except cPickle.PickleError:
diff --git a/git_refs.py b/git_refs.py
index 2476091..ac8ed0c 100644
--- a/git_refs.py
+++ b/git_refs.py
@@ -101,7 +101,7 @@
   def _ReadPackedRefs(self):
     path = os.path.join(self._gitdir, 'packed-refs')
     try:
-      fd = open(path, 'r')
+      fd = open(path, 'rb')
       mtime = os.path.getmtime(path)
     except IOError:
       return
@@ -138,7 +138,7 @@
 
   def _ReadLoose1(self, path, name):
     try:
-      fd = open(path, 'r')
+      fd = open(path, 'rb')
       mtime = os.path.getmtime(path)
     except OSError:
       return
diff --git a/project.py b/project.py
index 8d6e4b6..0a761ef 100644
--- a/project.py
+++ b/project.py
@@ -1070,9 +1070,7 @@
       rev = self.GetRemote(self.remote.name).ToLocal(self.revision)
       rev = self.bare_git.rev_parse('%s^0' % rev)
 
-      f = open(os.path.join(dotgit, HEAD), 'wb')
-      f.write("%s\n" % rev)
-      f.close()
+      _lwrite(os.path.join(dotgit, HEAD), '%s\n' % rev)
 
       cmd = ['read-tree', '--reset', '-u']
       cmd.append('-v')
@@ -1167,7 +1165,11 @@
         path = os.path.join(self._project.gitdir, HEAD)
       else:
         path = os.path.join(self._project.worktree, '.git', HEAD)
-      line = open(path, 'r').read()
+      fd = open(path, 'rb')
+      try:
+        line = fd.read()
+      finally:
+        fd.close()
       if line.startswith('ref: '):
         return line[5:-1]
       return line[:-1]
