diff --git a/product/ERP5/Tool/TemplateTool.py b/product/ERP5/Tool/TemplateTool.py
index 106260838cae1ba47065b29490b1edcef9e14a13..64fa20c2e5617bef606b93f98dd29568f5df4a53 100644
--- a/product/ERP5/Tool/TemplateTool.py
+++ b/product/ERP5/Tool/TemplateTool.py
@@ -459,10 +459,12 @@ class TemplateTool (BaseTool):
                                  stdout=subprocess.PIPE,
                                  stderr=subprocess.STDOUT)
 
-      output = process.communicate()[0]
-
-      outfile.write(output)
-      outfile.flush()
+      while True:
+        line = process.stdout.readline()
+        if not line:
+          break
+        outfile.write(line)
+        outfile.flush()
 
       if hasattr(outfile, 'getvalue'):
         return outfile.getvalue()