diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index 8694b8f6bd7c33e34ef2bbae46a66217dd1f3f4c..e262d00bb686b18ec78d14e4343323d76c2db7f8 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -101,15 +101,22 @@ def message(tag, msg, explanatory_text=None, do_newline=False):
     print '%s: %s' % (tag, msg)
     return
   try:
-    sys.stdout.write('%s%s%s\x1b[%d;%dm%s\x1b[0m: %s%s' % (
-        _BEGINNING_OF_LINE,
-        _CLEAR_LINE,
-        '\n%s' % explanatory_text if explanatory_text is not None else '',
-        _COLORS[_TAG_COLOR[tag]][1],
-        _COLORS[_TAG_COLOR[tag]][0],
-        tag,
-        msg,
-        '\n' if do_newline or explanatory_text is not None else ''))
+    if sys.stdout.isatty():
+        sys.stdout.write('%s%s%s\x1b[%d;%dm%s\x1b[0m: %s%s' % (
+            _BEGINNING_OF_LINE,
+            _CLEAR_LINE,
+            '\n%s' % explanatory_text if explanatory_text is not None else '',
+            _COLORS[_TAG_COLOR[tag]][1],
+            _COLORS[_TAG_COLOR[tag]][0],
+            tag,
+            msg,
+            '\n' if do_newline or explanatory_text is not None else ''))
+    else:
+        sys.stdout.write('%s%s: %s%s' % (
+            '\n%s' % explanatory_text if explanatory_text is not None else '',
+            tag,
+            msg,
+            '\n'))
     sys.stdout.flush()
   except:
     pass