diff --git a/fsl/utils/run.py b/fsl/utils/run.py
index 561e2ce2322e5c1ff1cc16d0f06ac7e48576cb05..bf63d578da218c5e3282eedf829aa23f8532ec6e 100644
--- a/fsl/utils/run.py
+++ b/fsl/utils/run.py
@@ -107,7 +107,7 @@ def _forwardStream(in_, *outs):
     omodes = [getattr(o, 'mode', 'w') for o in outs]
 
     def realForward():
-        for line in in_:
+        for line in iter(in_.readline, b''):
             for i, o in enumerate(outs):
                 if 'b' in omodes[i]: o.write(line)
                 else:                o.write(line.decode('utf-8'))