diff --git a/themes/bootstrap3/js/common.js b/themes/bootstrap3/js/common.js
index 1a7055a1e6ac6ddb74fc5978d1ee3c7ae53ad22d..a3f978cadb4666535a98664cfbcd48e58089fd04 100644
--- a/themes/bootstrap3/js/common.js
+++ b/themes/bootstrap3/js/common.js
@@ -266,6 +266,7 @@ function setupAutocomplete() {
   }
   // Search autocomplete
   searchbox.autocomplete({
+    rtl: $(document.body).hasClass("rtl"),
     maxResults: 10,
     loadingString: VuFind.translate('loading') + '...',
     handler: function vufindACHandler(input, cb) {
diff --git a/themes/bootstrap3/js/lib/autocomplete.js b/themes/bootstrap3/js/lib/autocomplete.js
index db78e438fb3198c9d4b810bdf32a872e7d038d26..cb6e6ee04e1b005cffefe4490c2185877bdc3c0d 100644
--- a/themes/bootstrap3/js/lib/autocomplete.js
+++ b/themes/bootstrap3/js/lib/autocomplete.js
@@ -14,9 +14,13 @@
         var position = input.offset();
         element.css({
           top: position.top + input.outerHeight(),
-          left: position.left,
           minWidth: input.width()
         });
+        if (options.rtl) {
+          element.css("right", document.body.offsetWidth - position.left - input.outerWidth());
+        } else {
+          element.css("left", position.left);
+        }
       };
 
       var _show = function _show() {
@@ -396,7 +400,8 @@
     highlight: true,
     loadingString: 'Loading...',
     maxResults: 20,
-    minLength: 3
+    minLength: 3,
+    rtl: false
   };
 
   var timer = false;