diff --git a/themes/bootstrap3/js/check_item_statuses.js b/themes/bootstrap3/js/check_item_statuses.js
index 5d2b541017c2d7bbb4a8171c8482edc334ae2fb5..4b7c763f4476db76e42a1818a5b8ffa92c943de6 100644
--- a/themes/bootstrap3/js/check_item_statuses.js
+++ b/themes/bootstrap3/js/check_item_statuses.js
@@ -12,7 +12,7 @@ VuFind.register('itemStatuses', function ItemStatuses() {
     return callnumber;
   }
   function displayItemStatus(result, $item) {
-    $item.removeClass('js-item-pending');
+    $item.addClass('js-item-done').removeClass('js-item-pending');
     $item.find('.status').empty().append(result.availability_message);
     $item.find('.ajax-availability').removeClass('ajax-availability hidden');
     if (typeof(result.error) != 'undefined'
@@ -71,7 +71,6 @@ VuFind.register('itemStatuses', function ItemStatuses() {
     }
   }
 
-  var itemStatusObserver = null;
   var ItemStatusHandler = {
     name: "default",
     //array to hold IDs and elements
@@ -99,7 +98,7 @@ VuFind.register('itemStatuses', function ItemStatuses() {
       $('.js-item-pending .callnumAndLocation').addClass('text-danger').empty().removeClass('hidden')
         .append(typeof response.responseJSON.data === 'string' ? response.responseJSON.data : VuFind.translate('error_occurred'));
     },
-    itemQueueAjax: function itemQueueAjax(id, el){
+    itemQueueAjax: function itemQueueAjax(id, el) {
       clearTimeout(this.itemStatusTimer);
       this.itemStatusIds.push(id);
       this.itemStatusEls[id] = el;
@@ -110,7 +109,7 @@ VuFind.register('itemStatuses', function ItemStatuses() {
       el.find('.status').removeClass('hidden');
     },
 
-    runItemAjaxForQueue: function runItemAjaxForQueue(){
+    runItemAjaxForQueue: function runItemAjaxForQueue() {
       if (this.itemStatusRunning) {
         this.itemStatusTimer = setTimeout(this.runItemAjaxForQueue.bind(this), this.itemStatusDelay);
         return;
@@ -124,7 +123,7 @@ VuFind.register('itemStatuses', function ItemStatuses() {
       })
         .done(this.checkItemStatusDone)
         .fail( this.itemStatusFail)
-        .always(function queueAjaxAlways(){
+        .always(function queueAjaxAlways() {
           this.itemStatusRunning = false;
         });
     }//end runItemAjax
@@ -146,7 +145,7 @@ VuFind.register('itemStatuses', function ItemStatuses() {
 
   function checkItemStatus(el) {
     var $item = $(el);
-    if ($item.hasClass('js-item-pending')) {
+    if ($item.hasClass('js-item-pending') || $item.hasClass('js-item-done')) {
       return;
     }
     if ($item.find('.hiddenId').length === 0) {
@@ -179,17 +178,16 @@ VuFind.register('itemStatuses', function ItemStatuses() {
       }
       checkItemHandlers[handlerName].itemQueueAjax(id, $(ajaxItems[i]));
     }
-    // Stop looking for a scroll loader
-    if (itemStatusObserver) {
-      itemStatusObserver.disconnect();
-    }
   }
-  function init() {
+  function init(_container) {
     if (typeof Hunt === 'undefined') {
-      checkItemStatuses();
+      checkItemStatuses(_container);
     } else {
-      itemStatusObserver = new Hunt(
-        $('.ajaxItem').toArray(),
+      var container = typeof _container === 'undefined'
+        ? document.body
+        : _container;
+      new Hunt(
+        $(container).find('.ajaxItem').toArray(),
         { enter: checkItemStatus }
       );
     }
diff --git a/themes/bootstrap3/js/combined-search.js b/themes/bootstrap3/js/combined-search.js
index a78dc3ec79d1186c9f79f55d78b058ac892c8f15..e7f1ad913db75b264990a0acad55aaaa4fd13d2c 100644
--- a/themes/bootstrap3/js/combined-search.js
+++ b/themes/bootstrap3/js/combined-search.js
@@ -6,7 +6,7 @@ VuFind.combinedSearch = (function CombinedSearch() {
         container.hide();
       } else {
         VuFind.openurl.init(container);
-        VuFind.itemStatuses.check(container);
+        VuFind.itemStatuses.init(container);
         checkSaveStatuses(container);
       }
     });