diff --git a/themes/bootstrap3/js/check_item_statuses.js b/themes/bootstrap3/js/check_item_statuses.js
index 21089fd02f5049ee33d8b3e1c92152b21b280d1a..073bec70d12ca8d53f1a90455211efec6a2059d1 100644
--- a/themes/bootstrap3/js/check_item_statuses.js
+++ b/themes/bootstrap3/js/check_item_statuses.js
@@ -1,10 +1,23 @@
 /*global VuFind */
 
-function checkItemStatuses() {
-  var id = $.map($('.ajaxItem'), function(i) {
-    return $(i).find('.hiddenId')[0].value;
+function checkItemStatuses(container) {
+  if (typeof(container) == 'undefined') {
+    container = $('body');
+  }
+
+  var elements = {};
+  var data = $.map(container.find('.ajaxItem'), function(record) {
+    if ($(record).find('.hiddenId').length == 0) {
+      return null;
+    }
+    var datum = $(record).find('.hiddenId').val();
+    if (typeof elements[datum] === 'undefined') {
+        elements[datum] = $();
+    }
+    elements[datum] = elements[datum].add($(record));
+    return datum;
   });
-  if (!id.length) {
+  if (!data.length) {
     return;
   }
 
@@ -13,11 +26,15 @@ function checkItemStatuses() {
     dataType: 'json',
     method: 'POST',
     url: VuFind.path + '/AJAX/JSON?method=getItemStatuses',
-    data: {id:id}
+    data: {'id':data}
   })
   .done(function(response) {
     $.each(response.data, function(i, result) {
-      var item = $($('.ajaxItem')[result.record_number]);
+      var item = elements[result.id];
+      if (!item) {
+        console.log('Unexpected selector from getItemStatuses: ' + sel);
+        return;
+      }
 
       item.find('.status').empty().append(result.availability_message);
       if (typeof(result.full_status) != 'undefined'
@@ -89,4 +106,4 @@ function checkItemStatuses() {
 
 $(document).ready(function() {
   checkItemStatuses();
-});
\ No newline at end of file
+});
diff --git a/themes/bootstrap3/js/check_save_statuses.js b/themes/bootstrap3/js/check_save_statuses.js
index 1ff432fbb676eec2c4ddb4c9c2ebe8ea6314e1e0..bb65b4c35bf91e5f9a16064d16cd6d8a6b46a8c4 100644
--- a/themes/bootstrap3/js/check_save_statuses.js
+++ b/themes/bootstrap3/js/check_save_statuses.js
@@ -1,13 +1,21 @@
 /*global VuFind */
 
-function checkSaveStatuses() {
-  var elements = {}
-  var data = $.map($('.result,.record'), function(record) {
-    if($(record).find('.hiddenId').length == 0 || $(record).find('.hiddenSource').length == 0) {
-      return false;
+function checkSaveStatuses(container) {
+  if (typeof(container) == 'undefined') {
+    container = $('body');
+  }
+
+  var elements = {};
+  var data = $.map(container.find('.result,.record'), function(record) {
+    if ($(record).find('.hiddenId').length == 0 || $(record).find('.hiddenSource').length == 0) {
+      return null;
     }
     var datum = {'id':$(record).find('.hiddenId').val(), 'source':$(record).find('.hiddenSource')[0].value};
-    elements[datum.source+"|"+datum.id] = $(record).find('.savedLists');
+    var key = datum.source+'|'+datum.id;
+    if (typeof elements[key] === 'undefined') {
+      elements[key] = $();
+    }
+    elements[key] = elements[key].add($(record).find('.savedLists'));
     return datum;
   });
   if (data.length) {
@@ -21,7 +29,7 @@ function checkSaveStatuses() {
       dataType: 'json',
       method: 'POST',
       url: VuFind.path + '/AJAX/JSON?method=getSaveStatuses',
-      data: {id:ids, 'source':srcs}
+      data: {'id':ids, 'source':srcs}
     })
     .done(function(response) {
       for (var sel in response.data) {
@@ -32,7 +40,7 @@ function checkSaveStatuses() {
         var html = list.find('strong')[0].outerHTML+'<ul>';
         for (var i=0; i<response.data[sel].length; i++) {
           html += '<li><a href="' + response.data[sel][i].list_url + '">'
-                   + htmlEncode(response.data[sel][i].list_title) + '</a></li>';
+            + htmlEncode(response.data[sel][i].list_title) + '</a></li>';
         }
         html += '</ul>';
         list.html(html).removeClass('hidden');