diff --git a/module/VuFind/src/VuFind/Controller/AjaxController.php b/module/VuFind/src/VuFind/Controller/AjaxController.php
index cda9dc741ded182605508c2e60d7aeba05dec9e6..edcfa676c881eaec837ae0a378c3bf8e51a3c862 100644
--- a/module/VuFind/src/VuFind/Controller/AjaxController.php
+++ b/module/VuFind/src/VuFind/Controller/AjaxController.php
@@ -485,7 +485,6 @@ class AjaxController extends AbstractBase
         }
 
         // loop through each ID check if it is saved to any of the user's lists
-        $result = [];
         $ids = $this->params()->fromPost('id', $this->params()->fromQuery('id', []));
         $sources = $this->params()->fromPost(
             'source', $this->params()->fromQuery('source', [])
@@ -497,19 +496,17 @@ class AjaxController extends AbstractBase
                 400
             );
         }
+        $result = [];
         foreach ($ids as $i => $id) {
             $source = isset($sources[$i]) ? $sources[$i] : DEFAULT_SEARCH_BACKEND;
             $data = $user->getSavedData($id, null, $source);
-            if ($data) {
+            if ($data && count($data) > 0) {
+                $result[$i] = [];
                 // if this item was saved, add it to the list of saved items.
                 foreach ($data as $list) {
-                    $result[] = [
-                        'record_id' => $id,
-                        'record_source' => $source,
-                        'resource_id' => $list->id,
+                    $result[$i][] = [
                         'list_id' => $list->list_id,
-                        'list_title' => $list->list_title,
-                        'record_number' => $i
+                        'list_title' => $list->list_title
                     ];
                 }
             }
diff --git a/themes/bootstrap3/js/check_save_statuses.js b/themes/bootstrap3/js/check_save_statuses.js
index 6ab81ff0f4157017f89e83d045079b065b83e2d3..032c7eda006a563e225f76ef173146fd08ddd11c 100644
--- a/themes/bootstrap3/js/check_save_statuses.js
+++ b/themes/bootstrap3/js/check_save_statuses.js
@@ -1,11 +1,11 @@
 /*global VuFind */
 
 function checkSaveStatuses() {
-  var data = $.map($('.result,.record'), function(i) {
-    if($(i).find('.hiddenId').length == 0 || $(i).find('.hiddenSource').length == 0) {
+  var data = $.map($('.result,.record'), function(record) {
+    if($(record).find('.hiddenId').length == 0 || $(record).find('.hiddenSource').length == 0) {
       return false;
     }
-    return {'id':$(i).find('.hiddenId').val(), 'source':$(i).find('.hiddenSource')[0].value};
+    return {'id':$(record).find('.hiddenId').val(), 'source':$(record).find('.hiddenSource')[0].value};
   });
   if (data.length) {
     var ids = [];
@@ -21,24 +21,23 @@ function checkSaveStatuses() {
       data: {id:ids, 'source':srcs}
     })
     .done(function(response) {
-      $('.savedLists > ul').empty();
-      $.each(response.data, function(i, result) {
-        var $container = $('#result'+result.record_number).find('.savedLists');
-        if ($container.length == 0) { // Record view
-          $container = $('.savedLists');
+      for (var rn in response.data) {
+        var list = $('#result'+rn).find('.savedLists')
+        if (list.length == 0) {
+          list = $('.savedLists');
         }
-        var $ul = $container.children('ul:first');
-        if ($ul.length == 0) {
-          $container.append('<ul></ul>');
-          $ul = $container.children('ul:first');
+        var html = list.find('strong')[0].outerHTML+'<ul>';
+        for (var i=0; i<response.data[rn].length; i++) {
+          html += '<li><a href="' + VuFind.getPath() + '/MyResearch/MyList/' + response.data[rn][i].list_id + '">'
+                   + response.data[rn][i].list_title + '</a></li>';
         }
-        var html = '<li><a href="' + VuFind.getPath() + '/MyResearch/MyList/' + result.list_id + '">'
-                 + result.list_title + '</a></li>';
-        $ul.append(html);
-        $container.removeClass('hidden');
-      });
+        html += '</ul>';
+        list.html(html).removeClass('hidden');
+      }
     });
   }
 }
 
-$(document).ready(checkSaveStatuses);
+$(document).ready(function() {
+  checkSaveStatuses()
+});
diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
index 96bd4cacb51c5c5f18883aca465ac11d7ee74c66..f006ef6119d3ea9fcc37b376ff5365a13930d5d3 100644
--- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
+++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
@@ -157,7 +157,7 @@
 
       <? if ($this->userlist()->getMode() !== 'disabled'): ?>
         <? /* Add to favorites */ ?>
-        <i class="fa fa-fw fa-star"></i> <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" class="save-record modal-link" data-id="<?=$this->driver->getUniqueId() ?>" title="<?=$this->transEsc('Add to favorites')?>"><?=$this->transEsc('Add to favorites')?></a><br/>
+        <i class="fa fa-fw fa-star"></i> <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" class="save-record modal-link" data-id="<?=$this->escapeHtmlAttr($this->driver->getUniqueId()) ?>" title="<?=$this->transEsc('Add to favorites')?>"><?=$this->transEsc('Add to favorites')?></a><br/>
 
         <? /* Saved lists */ ?>
         <div class="savedLists alert alert-info hidden">