diff -ru src/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
--- src/setuptools/command/easy_install.py	2014-10-31 14:42:35.779973945 +0100
+++ b/setuptools/command/easy_install.py	2014-10-31 15:07:53.067034724 +0100
@@ -1446,6 +1446,11 @@
             list(map(self.add, find_distributions(path, True)))
 
     def _load(self):
+        # Lock self.filename until save() is called
+        import fcntl
+        self.lock = open(self.filename, 'a')
+        fcntl.flock(self.lock, fcntl.LOCK_EX)
+
         self.paths = []
         saw_import = False
         seen = dict.fromkeys(self.sitedirs)
@@ -1479,6 +1484,7 @@
     def save(self):
         """Write changed .pth file back to disk"""
         if not self.dirty:
+            self.lock.close()
             return
 
         data = '\n'.join(map(self.make_relative,self.paths))
@@ -1504,6 +1510,7 @@
             os.unlink(self.filename)
 
         self.dirty = False
+        self.lock.close()
 
     def add(self, dist):
         """Add `dist` to the distribution map"""
