diff --git a/includes/form.inc b/includes/form.inc
index 15c18cb..6d3166d 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -3561,6 +3561,9 @@ function theme_textfield($variables) {
     $attributes['value'] = url($element['#autocomplete_path'], array('absolute' => TRUE));
     $attributes['disabled'] = 'disabled';
     $attributes['class'][] = 'autocomplete';
+    if ($element['#autocomplete_double_encode']) {
+      $attributes['class'][] = 'autocomplete_doubleencode';
+    }
     $extra = '<input' . drupal_attributes($attributes) . ' />';
   }
 
diff --git a/misc/autocomplete.js b/misc/autocomplete.js
index bb4d599..86c06f1 100644
--- a/misc/autocomplete.js
+++ b/misc/autocomplete.js
@@ -276,10 +276,15 @@ Drupal.ACDB.prototype.search = function (searchString) {
   this.timer = setTimeout(function () {
     db.owner.setStatus('begin');
 
+    searchParam = encodeURIComponent(searchString);
+    if ($(db.owner.input).next().first().hasClass('autocomplete_doubleencode')) {
+      searchParam = encodeURIComponent(searchString);
+    }
+    
     // Ajax GET request for autocompletion.
     $.ajax({
       type: 'GET',
-      url: db.uri + '/' + encodeURIComponent(searchString),
+      url: db.uri + '/' + searchParam,
       dataType: 'json',
       success: function (matches) {
         if (typeof matches.status == 'undefined' || matches.status != 0) {
