diff --git a/run.py b/run.py
index b540421..1130dc7 100755
--- a/run.py
+++ b/run.py
@@ -42,23 +42,32 @@
 
 
 class Handler(object):
+  """When data is received from the given file, print it line by line."""
+
   def __init__(self, prefix, fileobj):
     self.prefix = prefix
     self.fileobj = fileobj
+    self.buf = ''
+
+  def __del__(self):
+    if self.buf and not self.buf.endswith('\n'):
+      self.buf += '\n'
+    self.PrintBuf()
 
   def fileno(self):  #gpylint: disable-msg=C6409
     return self.fileobj.fileno()
 
+  def PrintBuf(self):
+    while '\n' in self.buf:
+      line, self.buf = self.buf.split('\n', 1)
+      print '%s: %s' % (self.prefix, line)
+
   def Run(self):
     """Read from this handler and write its results to stdout."""
-    buf = os.read(self.fileobj.fileno(), 65536)
-    if buf:
-      if not buf.endswith('\n'):
-        buf += '\n'
-      lines = buf.split('\n')[:-1]
-      for line in lines:
-        print '%s: %s' % (self.prefix, line)
-    return buf
+    got = os.read(self.fileobj.fileno(), 65536)
+    self.buf += got
+    self.PrintBuf()
+    return got
 
 
 def main():
