diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index 64af212..11be663 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -41,11 +41,11 @@ Drupal.behaviors.AJAX = {
 
       // For anchor tags, these will go to the target of the anchor rather
       // than the usual location.
-      if ($(this).attr('href')) {
-        element_settings.url = $(this).attr('href');
+      var base = $(this).attr('id');
+      if (base) {
+        element_settings.url = base;
         element_settings.event = 'click';
       }
-      var base = $(this).attr('id');
       Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
     });
 
@@ -470,7 +470,7 @@ Drupal.ajax.prototype.commands = {
   insert: function (ajax, response, status) {
     // Get information from the response. If it is not there, default to
     // our presets.
-    var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
+    var $wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
     var method = response.method || ajax.method;
     var effect = ajax.getEffect(response);
 
@@ -479,8 +479,8 @@ Drupal.ajax.prototype.commands = {
     // $(response.data) as new HTML rather than a CSS selector. Also, if
     // response.data contains top-level text nodes, they get lost with either
     // $(response.data) or $('<div></div>').replaceWith(response.data).
-    var new_content_wrapped = $('<div></div>').html(response.data);
-    var new_content = new_content_wrapped.contents();
+    var $new_content_wrapped = $('<div></div>').html(response.data);
+    var $new_content = $new_content_wrapped.contents();
 
     // For legacy reasons, the effects processing code assumes that new_content
     // consists of a single top-level element. Also, it has not been
@@ -492,8 +492,8 @@ Drupal.ajax.prototype.commands = {
     // content satisfies the requirement of a single top-level element, and
     // only use the container DIV created above when it doesn't. For more
     // information, please see http://drupal.org/node/736066.
-    if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) {
-      new_content = new_content_wrapped;
+    if ($new_content.length !== 1 || $new_content.get(0).nodeType !== 1) {
+      $new_content = $new_content_wrapped;
     }
 
     // If removing content from the wrapper, detach behaviors first.
@@ -504,35 +504,35 @@ Drupal.ajax.prototype.commands = {
       case 'empty':
       case 'remove':
         var settings = response.settings || ajax.settings || Drupal.settings;
-        Drupal.detachBehaviors(wrapper, settings);
+        Drupal.detachBehaviors($wrapper, settings);
     }
 
     // Add the new content to the page.
-    wrapper[method](new_content);
+    wrapper[method]($new_content);
 
     // Immediately hide the new content if we're using any effects.
     if (effect.showEffect !== 'show') {
-      new_content.hide();
+      $new_content.hide();
     }
 
     // Determine which effect to use and what content will receive the
     // effect, then show the new content.
-    if (new_content.find('.ajax-new-content').length > 0) {
-      new_content.find('.ajax-new-content').hide();
-      new_content.show();
-      new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
+    if ($new_content.find('.ajax-new-content').length > 0) {
+      $new_content.find('.ajax-new-content').hide();
+      $new_content.show();
+      $new_content.find('.ajax-new-content')[effect.showEffect](effect.showSpeed);
     }
     else if (effect.showEffect !== 'show') {
-      new_content[effect.showEffect](effect.showSpeed);
+      $new_content[effect.showEffect](effect.showSpeed);
     }
 
     // Attach all JavaScript behaviors to the new content, if it was successfully
     // added to the page, this if statement allows #ajax['wrapper'] to be
     // optional.
-    if (new_content.parents('html').length > 0) {
+    if ($new_content.parents('html').length > 0) {
       // Apply any settings from the returned JSON if available.
       var settings = response.settings || ajax.settings || Drupal.settings;
-      Drupal.attachBehaviors(new_content, settings);
+      Drupal.attachBehaviors($new_content, settings);
     }
   },
 
@@ -549,10 +549,11 @@ Drupal.ajax.prototype.commands = {
    * Command to mark a chunk changed.
    */
   changed: function (ajax, response, status) {
-    if (!$(response.selector).hasClass('ajax-changed')) {
-      $(response.selector).addClass('ajax-changed');
+    var $element = $(response.selector);
+    if (!$element.hasClass('ajax-changed')) {
+      $element.addClass('ajax-changed');
       if (response.asterisk) {
-        $(response.selector).find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
+        $element.find(response.asterisk).append(' <abbr class="ajax-changed" title="' + Drupal.t('Changed') + '">*</abbr> ');
       }
     }
   },
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 349aab5..ad24e8d 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1582,7 +1582,7 @@ function node_search_execute($keys = NULL, $conditions = NULL) {
       'node' => $node,
       'extra' => $extra,
       'score' => $item->calculated_score,
-      'snippet' => search_excerpt($keys, $node->rendered),
+      'snippet' => search_excerpt($keys, $node->rendered, $item->langcode),
       'langcode' => $node->langcode,
     );
   }
diff --git a/core/modules/search/search.api.php b/core/modules/search/search.api.php
index 4c24475..036e666 100644
--- a/core/modules/search/search.api.php
+++ b/core/modules/search/search.api.php
@@ -246,7 +246,7 @@ function hook_search_execute($keys = NULL, $conditions = NULL) {
       'node' => $node,
       'extra' => $extra,
       'score' => $item->calculated_score,
-      'snippet' => search_excerpt($keys, $node->rendered),
+      'snippet' => search_excerpt($keys, $node->rendered, $item->langcode),
       'langcode' => $node->langcode,
     );
   }
@@ -312,7 +312,12 @@ function hook_search_page($results) {
  *
  * @ingroup search
  */
-function hook_search_preprocess($text) {
+function hook_search_preprocess($text, $langcode = NULL) {
+  // If language is not specified we pass along the
+  // unspecified langcode.
+  if (!$langcode) {
+    $langcode = LANGUAGE_NOT_SPECIFIED;
+  }
   // Do processing on $text
   return $text;
 }
diff --git a/core/modules/search/search.module b/core/modules/search/search.module
index 7613465..b2fc299 100644
--- a/core/modules/search/search.module
+++ b/core/modules/search/search.module
@@ -430,7 +430,12 @@ function search_update_totals() {
  *
  * @see hook_search_preprocess()
  */
-function search_simplify($text) {
+function search_simplify($text, $langcode = NULL) {
+  // If language is not specified we pass along the
+  // unspecified langcode.
+  if (!$langcode) {
+    $langcode = LANGUAGE_NOT_SPECIFIED;
+  }
   // Decode entities to UTF-8
   $text = decode_entities($text);
 
@@ -438,7 +443,7 @@ function search_simplify($text) {
   $text = drupal_strtolower($text);
 
   // Call an external processor for word handling.
-  search_invoke_preprocess($text);
+  search_invoke_preprocess($text, $langcode);
 
   // Simple CJK handling
   if (config('search.settings')->get('index.overlap_cjk')) {
@@ -554,9 +559,9 @@ function _search_index_truncate(&$text) {
 /**
  * Invokes hook_search_preprocess() in modules.
  */
-function search_invoke_preprocess(&$text) {
+function search_invoke_preprocess(&$text, $langcode = NULL) {
   foreach (module_implements('search_preprocess') as $module) {
-    $text = module_invoke($module, 'search_preprocess', $text);
+    $text = module_invoke($module, 'search_preprocess', $text, $langcode);
   }
 }
 
@@ -1109,7 +1114,7 @@ function search_data($keys, $module, $conditions = NULL) {
  * @return
  *   A string containing HTML for the excerpt.
  */
-function search_excerpt($keys, $text) {
+function search_excerpt($keys, $text, $langcode = NULL) {
   // We highlight around non-indexable or CJK characters.
   $boundary = '(?:(?<=[' . PREG_CLASS_UNICODE_WORD_BOUNDARY . PREG_CLASS_CJK . '])|(?=[' . PREG_CLASS_UNICODE_WORD_BOUNDARY . PREG_CLASS_CJK . ']))';
 
@@ -1156,7 +1161,7 @@ function search_excerpt($keys, $text) {
         $p = $match[0][1];
       }
       else {
-        $info = search_simplify_excerpt_match($key, $text, $included[$key], $boundary);
+        $info = search_simplify_excerpt_match($key, $text, $included[$key], $boundary, $langcode);
         if ($info['where']) {
           $p = $info['where'];
           if ($info['keyword']) {
@@ -1273,10 +1278,10 @@ function _search_excerpt_replace(&$text) {
  *   array with element 'where' giving the position of the match, and element
  *   'keyword' giving the actual word found in the text at that position.
  */
-function search_simplify_excerpt_match($key, $text, $offset, $boundary) {
+function search_simplify_excerpt_match($key, $text, $offset, $boundary, $langcode = NULL) {
   $pos = NULL;
-  $simplified_key = search_simplify($key);
-  $simplified_text = search_simplify($text);
+  $simplified_key = search_simplify($key, $langcode);
+  $simplified_text = search_simplify($text, $langcode);
 
   // Return immediately if simplified key or text are empty.
   if (!$simplified_key || !$simplified_text) {
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 2c12638..ba17413 100755
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -5,51 +5,41 @@
  * Drupal site-specific configuration file.
  *
  * IMPORTANT NOTE:
- * This file may have been set to read-only by the Drupal installation program.
- * If you make changes to this file, be sure to protect it again after making
- * your modifications. Failure to remove write permissions to this file is a
- * security risk.
- *
- * The configuration file to be loaded is based upon the rules below. However
- * if the multisite aliasing file named sites/sites.php is present, it will be
- * loaded, and the aliases in the array $sites will override the default
- * directory rules below. See sites/example.sites.php for more information about
- * aliases.
- *
- * The configuration directory will be discovered by stripping the website's
- * hostname from left to right and pathname from right to left. The first
- * configuration file found will be used and any others will be ignored. If no
- * other configuration file is found then the default configuration file at
- * 'sites/default' will be used.
+ * This file may have been set to read-only by the Drupal installation
+ * program. If you make changes to this file, be sure to protect it again
+ * after making your modifications. Failure to remove write permissions
+ * to this file is a security risk.
+ *
+ * The configuration file to be loaded is based upon the rules below.
+ *
+ * The configuration directory will be discovered by stripping the
+ * website's hostname from left to right and pathname from right to
+ * left. The first configuration file found will be used and any
+ * others will be ignored. If no other configuration file is found
+ * then the default configuration file at 'sites/default' will be used.
  *
  * For example, for a fictitious site installed at
- * http://www.drupal.org:8080/mysite/test/, the 'settings.php' file is searched
- * for in the following directories:
+ * http://www.drupal.org/mysite/test/, the 'settings.php'
+ * is searched in the following directories:
  *
- * - sites/8080.www.drupal.org.mysite.test
  * - sites/www.drupal.org.mysite.test
  * - sites/drupal.org.mysite.test
  * - sites/org.mysite.test
  *
- * - sites/8080.www.drupal.org.mysite
  * - sites/www.drupal.org.mysite
  * - sites/drupal.org.mysite
  * - sites/org.mysite
  *
- * - sites/8080.www.drupal.org
  * - sites/www.drupal.org
  * - sites/drupal.org
  * - sites/org
  *
  * - sites/default
  *
- * Note that if you are installing on a non-standard port number, prefix the
+ * If you are installing on a non-standard port number, prefix the
  * hostname with that number. For example,
  * http://www.drupal.org:8080/mysite/test/ could be loaded from
  * sites/8080.www.drupal.org.mysite.test/.
- *
- * @see example.sites.php
- * @see conf_path()
  */
 
 /**
