diff --git a/themes/bootstrap3/js/cart.js b/themes/bootstrap3/js/cart.js
index 74c4f4fa7f38fc97c21a3f9746739c1858a30958..b20b493920c1fc3bc6c6c3d0bbf22ac8adde6189 100644
--- a/themes/bootstrap3/js/cart.js
+++ b/themes/bootstrap3/js/cart.js
@@ -1,10 +1,11 @@
-/*global confirm, Cookies, newAccountHandler, path, vufindString, Lightbox, updatePageForLogin */
+/*global bulkActionSubmit, Cookies, newAccountHandler, path, vufindString, Lightbox, updatePageForLogin */
 
 var _CART_COOKIE = 'vufind_cart';
 var _CART_COOKIE_SOURCES = 'vufind_cart_src';
 var _CART_COOKIE_DELIM = "\t";
 
 var currentId,currentSource;
+var lastCartSubmit = false;
 
 function getCartItems() {
   var items = Cookies.getItem(_CART_COOKIE);
@@ -154,27 +155,6 @@ function registerUpdateCart($form) {
   }
 }
 
-// Ajax cart submission for the lightbox
-var lastCartSubmit = false;
-function cartSubmit($form) {
-  lastCartSubmit = $form;
-  var submit = $form.find('input[type="submit"][clicked=true]').attr('name');
-  var checks = $form.find('input.checkbox-select-item:checked');
-  if(checks.length == 0 && submit != 'empty') {
-    return Lightbox.displayError(vufindString['bulk_noitems_advice']);
-  }
-  if (submit == 'print') {
-    //redirect page
-    var url = path+'/Records/Home?print=true';
-    for(var i=0;i<checks.length;i++) {
-      url += '&id[]='+checks[i].value;
-    }
-    document.location.href = url;
-  } else {
-    Lightbox.submit($form, Lightbox.changeContent);
-  }
-}
-
 $(document).ready(function() {
   // Record buttons
   var cartId = $('#cartId');
@@ -214,7 +194,8 @@ $(document).ready(function() {
     }
   });
   Lightbox.addFormHandler('cartForm', function(evt) {
-    cartSubmit($(evt.target));
+    lastCartSubmit = $(evt.target);
+    bulkActionSubmit($(evt.target));
     return false;
   });
   Lightbox.addFormCallback('bulkEmail', function(html) {
diff --git a/themes/bootstrap3/js/common.js b/themes/bootstrap3/js/common.js
index c155fea4cb44d543a294913124570a3514197344..58604d71925f4b94f4b3c3cb62f5e822350352da 100644
--- a/themes/bootstrap3/js/common.js
+++ b/themes/bootstrap3/js/common.js
@@ -100,6 +100,24 @@ function setupOrFacets() {
  * This is a default open action, so it runs every time changeContent
  * is called and the 'shown' lightbox event is triggered
  */
+function bulkActionSubmit($form) {
+  var submit = $form.find('input[type="submit"][clicked=true]').attr('name');
+  var checks = $form.find('input.checkbox-select-item:checked');
+  if(checks.length == 0 && submit != 'empty') {
+    return Lightbox.displayError(vufindString['bulk_noitems_advice']);
+  }
+  if (submit == 'print') {
+    //redirect page
+    var url = path+'/Records/Home?print=true';
+    for(var i=0;i<checks.length;i++) {
+      url += '&id[]='+checks[i].value;
+    }
+    document.location.href = url;
+  } else {
+    Lightbox.submit($form, Lightbox.changeContent);
+  }
+  return false;
+}
 function registerLightboxEvents() {
   var modal = $("#modal");
   // New list
@@ -356,6 +374,18 @@ $(document).ready(function() {
   // Advanced facets
   setupOrFacets();
 
+  $('[name=bulkActionForm]').submit(function() {
+    return bulkActionSubmit($(this));
+  });
+  $('[name=bulkActionForm]').find("input[type=submit]").click(function() {
+    // Abort requests triggered by the lightbox
+    $('#modal .fa-spinner').remove();
+    // Remove other clicks
+    $(this).closest('form').find('input[type="submit"][clicked=true]').attr('clicked', false);
+    // Add useful information
+    $(this).attr("clicked", "true");
+  });
+
   /******************************
    * LIGHTBOX DEFAULT BEHAVIOUR *
    ******************************/