diff --git a/hgext/pager.py b/hgext/pager.py
index 2420cb1ea1d6d7f46739eead1e3d7f9c399120a4_aGdleHQvcGFnZXIucHk=..994510694b1d12f121dce2e5a585abaf13514259_aGdleHQvcGFnZXIucHk= 100644
--- a/hgext/pager.py
+++ b/hgext/pager.py
@@ -59,10 +59,12 @@
 
 def _runpager(p):
     if not hasattr(os, 'fork'):
-        sys.stderr = sys.stdout = util.popen(p, 'wb')
+        sys.stdout = util.popen(p, 'wb')
+        if sys.stderr.isatty():
+            sys.stderr = sys.stdout
         return
     fdin, fdout = os.pipe()
     pid = os.fork()
     if pid == 0:
         os.close(fdin)
         os.dup2(fdout, sys.stdout.fileno())
@@ -63,10 +65,11 @@
         return
     fdin, fdout = os.pipe()
     pid = os.fork()
     if pid == 0:
         os.close(fdin)
         os.dup2(fdout, sys.stdout.fileno())
-        os.dup2(fdout, sys.stderr.fileno())
+        if sys.stderr.isatty():
+            os.dup2(fdout, sys.stderr.fileno())
         os.close(fdout)
         return
     os.dup2(fdin, sys.stdin.fileno())