diff --git a/scp/js/scp.js b/scp/js/scp.js
index 8621a7d79215a2d44837fb51d20f7b0cb0343f7d..1a3e35becf58a540e8eb6a6590bb8e92694210cd 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -844,7 +844,7 @@ getConfig = (function() {
 })();
 
 $(document).on('pjax:click', function(options) {
-    clearTimeout(window.ticket_refresh);
+    clearInterval(window.ticket_refresh);
     // Release ticket lock (maybe)
     if ($.autoLock !== undefined)
         $.autoLock.releaseLock();
diff --git a/scp/js/ticket.js b/scp/js/ticket.js
index a2a131e0243676586a20277d48db3c71603d3686..7f7b879e7eb8a13f0723ee764dd668398ff5fdca 100644
--- a/scp/js/ticket.js
+++ b/scp/js/ticket.js
@@ -337,9 +337,19 @@ $.showImagesInline = function(urls, thread_id) {
     });
 };
 
-$.refreshTicketView = function() {
-    if (0 === $('.dialog:visible').length)
-        $.pjax({url: document.location.href, container:'#pjax-container'});
+$.refreshTicketView = function(interval) {
+    var refresh =
+    window.ticket_refresh = setInterval(function() {
+      if ($('table.list input.ckb[name=tids\\[\\]]:checked').length)
+        // Skip the refresh b/c items are checked
+        return;
+      else if (0 < $('.dialog:visible').length)
+        // Dialog open — skip refresh
+        return;
+
+      clearInterval(refresh);
+      $.pjax({url: document.location.href, container:'#pjax-container'});
+    }, interval);
 }
 
 var ticket_onload = function($) {
diff --git a/scp/tickets.php b/scp/tickets.php
index d7320c29595c0819aafa79d28b960a1cbe8491a0..3dc2d0f9ce2cd6935e47d7c02440f82adce71a19 100644
--- a/scp/tickets.php
+++ b/scp/tickets.php
@@ -538,10 +538,8 @@ if($ticket) {
         $nav->setActiveSubMenu(-1);
 
     //set refresh rate if the user has it configured
-    if(!$_POST && !$_REQUEST['a'] && ($min=$thisstaff->getRefreshRate())) {
-        $js = "clearTimeout(window.ticket_refresh);
-               window.ticket_refresh = setTimeout($.refreshTicketView,"
-            .($min*60000).");";
+    if(!$_POST && !$_REQUEST['a'] && ($min=(int)$thisstaff->getRefreshRate())) {
+        $js = "$.refreshTicketView({$min}*60000);";
         $ost->addExtraHeader('<script type="text/javascript">'.$js.'</script>',
             $js);
     }