diff --git a/test/test_slave.html b/test/test_slave.html
index d685eeaf2..5652a5860 100644
--- a/test/test_slave.html
+++ b/test/test_slave.html
@@ -194,9 +194,17 @@ function clear(ctx) {
   ctx.restore();
 }
 
+/* Auto-scroll if the scrollbar is near the bottom, otherwise do
+nothing. */
+function checkScrolling() {
+  if ((stdout.scrollHeight - stdout.scrollTop) <= stdout.offsetHeight) {
+     stdout.scrollTop = stdout.scrollHeight;
+  }
+}
+
 function log(str) {
   stdout.innerHTML += str;
-  window.scrollTo(0, stdout.getBoundingClientRect().bottom);
+  checkScrolling();
 }
   </script>
 </head>