diff --git a/fsl/utils/run.py b/fsl/utils/run.py
index a8adb80b879a198485970284d562ef6064c96d96..4c45f6aa8de215331903f84d5ec372d6b51d8283 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'))