diff --git a/python/build/project.py b/python/build/project.py
index c79c4f5a1..087ca3d07 100644
--- a/python/build/project.py
+++ b/python/build/project.py
@@ -7,6 +7,7 @@ from build.tar import untar
 class Project:
     def __init__(self, url, md5, installed, name=None, version=None,
                  base=None,
+                 edits=None,
                  use_cxx=False):
         if base is None:
             basename = os.path.basename(url)
@@ -28,6 +29,7 @@ class Project:
         self.md5 = md5
         self.installed = installed
 
+        self.edits = edits
         self.use_cxx = use_cxx
 
     def download(self, toolchain):
@@ -47,7 +49,18 @@ class Project:
             parent_path = toolchain.src_path
         else:
             parent_path = toolchain.build_path
-        return untar(self.download(toolchain), parent_path, self.base)
+        path = untar(self.download(toolchain), parent_path, self.base)
+
+        if self.edits is not None:
+            for filename, function in self.edits.items():
+                with open(os.path.join(path, filename), 'r+t') as f:
+                    old_data = f.read()
+                    new_data = function(old_data)
+                    f.seek(0)
+                    f.truncate(0)
+                    f.write(new_data)
+
+        return path
 
     def make_build_path(self, toolchain):
         path = os.path.join(toolchain.build_path, self.base)