diff --git a/core/includes/common.inc b/core/includes/common.inc
index e8ae478..d0e9a2f 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -77,6 +77,11 @@ const CSS_DEFAULT = 0;
 const CSS_THEME = 100;
 
 /**
+ * The default group for JavaScript settings added to the page.
+ */
+const JS_SETTING = -200;
+
+/**
  * The default group for JavaScript and jQuery libraries added to the page.
  */
 const JS_LIBRARY = -100;
@@ -92,11 +97,6 @@ const JS_DEFAULT = 0;
 const JS_THEME = 100;
 
 /**
- * The default group for JavaScript settings added to the page.
- */
-const JS_SETTING = 200;
-
-/**
  * Error code indicating that the request exceeded the specified timeout.
  *
  * @see drupal_http_request()
@@ -4038,7 +4038,7 @@ function drupal_pre_render_scripts($elements) {
         switch ($item['type']) {
           case 'setting':
             $element['#value_prefix'] = $embed_prefix;
-            $element['#value'] = 'jQuery.extend(Drupal.settings, ' . drupal_json_encode(drupal_array_merge_deep_array($item['data'])) . ");";
+            $element['#value'] = 'var drupalSettings = ' . drupal_json_encode(drupal_array_merge_deep_array($item['data'])) . ";";
             $element['#value_suffix'] = $embed_suffix;
             break;
 
diff --git a/core/misc/drupal.js b/core/misc/drupal.js
index 8bbddc2..627e264 100644
--- a/core/misc/drupal.js
+++ b/core/misc/drupal.js
@@ -1,14 +1,17 @@
-var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'locale': {} };
+var Drupal = Drupal || { 'behaviors': {}, 'locale': {} };
 
 // Allow other JavaScript libraries to use $.
 jQuery.noConflict();
 
 // JavaScript should be made compatible with libraries other than jQuery by
 // wrapping it in an anonymous closure.
-(function ($, Drupal, window, document, undefined) {
+(function ($, Drupal, drupalSettings) {
 
 "use strict";
 
+// Populate Drupal.settings with the drupalSettings variable.
+Drupal.settings = drupalSettings;
+
 /**
  * Custom error type thrown after attach/detach if one or more behaviors failed.
  *
@@ -71,7 +74,7 @@ DrupalBehaviorError.prototype = new Error();
  */
 Drupal.attachBehaviors = function (context, settings) {
   context = context || document;
-  settings = settings || Drupal.settings;
+  settings = settings || drupalSettings;
   var i, errors = [], behaviors = Drupal.behaviors;
   // Execute all of them.
   for (i in behaviors) {
@@ -133,7 +136,7 @@ Drupal.attachBehaviors = function (context, settings) {
  */
 Drupal.detachBehaviors = function (context, settings, trigger) {
   context = context || document;
-  settings = settings || Drupal.settings;
+  settings = settings || drupalSettings;
   trigger = trigger || 'unload';
   var i, errors = [], behaviors = Drupal.behaviors;
   // Execute all of them.
@@ -159,7 +162,7 @@ Drupal.detachBehaviors = function (context, settings, trigger) {
  * @todo Temporary solution for the mobile initiative.
  */
 Drupal.checkWidthBreakpoint = function (width) {
-  width = width || Drupal.settings.widthBreakpoint || 640;
+  width = width || drupalSettings.widthBreakpoint || 640;
   return (document.documentElement.clientWidth > width);
 };
 
@@ -259,7 +262,7 @@ Drupal.t = function (str, args, options) {
  * Returns the URL to a Drupal page.
  */
 Drupal.url = function (path) {
-  return Drupal.settings.basePath + Drupal.settings.scriptPath + path;
+  return drupalSettings.basePath + drupalSettings.scriptPath + path;
 };
 
 /**
@@ -434,7 +437,7 @@ $('html').addClass('js');
 
 //Attach all behaviors.
 $(function () {
-  Drupal.attachBehaviors(document, Drupal.settings);
+  Drupal.attachBehaviors(document, drupalSettings);
 });
 
 /**
@@ -455,4 +458,4 @@ $.extend(Drupal.theme, {
   }
 });
 
-})(jQuery, Drupal, this, this.document);
+})(jQuery, Drupal, window.drupalSettings);
diff --git a/core/modules/color/color.module b/core/modules/color/color.module
index d4ca6ca..56c04cf 100644
--- a/core/modules/color/color.module
+++ b/core/modules/color/color.module
@@ -771,7 +771,7 @@ function color_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
diff --git a/core/modules/field_ui/field_ui.module b/core/modules/field_ui/field_ui.module
index 63cf18b..2efc07c 100644
--- a/core/modules/field_ui/field_ui.module
+++ b/core/modules/field_ui/field_ui.module
@@ -397,7 +397,7 @@ function field_ui_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index 447871b..0f6cb64 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -1710,7 +1710,7 @@ function file_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 86689ac..a210a9e 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -466,7 +466,7 @@ function locale_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index bca8d9b..573d286 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -4054,7 +4054,7 @@ function node_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'drupal.form'),
     ),
   );
diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module
index e03c032..3ae575c 100644
--- a/core/modules/overlay/overlay.module
+++ b/core/modules/overlay/overlay.module
@@ -213,7 +213,7 @@ function overlay_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.ui.core'),
       array('system', 'jquery.bbq'),
     ),
@@ -232,7 +232,7 @@ function overlay_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
index cc54b67..b293c29 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
@@ -1988,7 +1988,7 @@ abstract class WebTestBase extends TestBase {
     $this->plainTextContent = FALSE;
     $this->elements = FALSE;
     $this->drupalSettings = array();
-    if (preg_match('/jQuery\.extend\(Drupal\.settings, (.*?)\);/', $content, $matches)) {
+    if (preg_match('/var drupalSettings = (.*?);/', $content, $matches)) {
       $this->drupalSettings = drupal_json_decode($matches[1]);
     }
   }
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index f216339..dd5ee4d 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -551,7 +551,7 @@ function simpletest_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
       array('system', 'drupal.tableselect'),
     ),
diff --git a/core/modules/statistics/statistics.module b/core/modules/statistics/statistics.module
index 72a1efb..8469e52 100644
--- a/core/modules/statistics/statistics.module
+++ b/core/modules/statistics/statistics.module
@@ -474,7 +474,7 @@ function statistics_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/JavaScriptTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/JavaScriptTest.php
index 872aaa7..d2f39bb 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/JavaScriptTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/JavaScriptTest.php
@@ -76,7 +76,7 @@ class JavaScriptTest extends WebTestBase {
    */
   function testAddSetting() {
     // Add a file in order to test default settings.
-    drupal_add_library('system', 'drupal.settings');
+    drupal_add_library('system', 'drupalSettings');
     $javascript = drupal_add_js();
     $last_settings = reset($javascript['settings']['data']);
     $this->assertTrue($last_settings['currentPath'], 'The current path JavaScript setting is set correctly.');
@@ -136,15 +136,13 @@ class JavaScriptTest extends WebTestBase {
    * Test drupal_get_js() for JavaScript settings.
    */
   function testHeaderSetting() {
-    drupal_add_library('system', 'drupal.settings');
+    drupal_add_library('system', 'drupalSettings');
 
     $javascript = drupal_get_js('header');
     $this->assertTrue(strpos($javascript, 'basePath') > 0, 'Rendered JavaScript header returns basePath setting.');
     $this->assertTrue(strpos($javascript, 'scriptPath') > 0, 'Rendered JavaScript header returns scriptPath setting.');
     $this->assertTrue(strpos($javascript, 'pathPrefix') > 0, 'Rendered JavaScript header returns pathPrefix setting.');
     $this->assertTrue(strpos($javascript, 'currentPath') > 0, 'Rendered JavaScript header returns currentPath setting.');
-    $this->assertTrue(strpos($javascript, 'core/misc/drupal.js') > 0, 'Rendered JavaScript header includes Drupal.js.');
-    $this->assertTrue(strpos($javascript, 'core/misc/jquery.js') > 0, 'Rendered JavaScript header includes jQuery.');
 
     // Only the second of these two entries should appear in Drupal.settings.
     drupal_add_js(array('commonTest' => 'commonTestShouldNotAppear'), 'setting');
@@ -173,11 +171,11 @@ class JavaScriptTest extends WebTestBase {
     $this->assertTrue($associative_array_override, t('drupal_add_js() correctly overrides settings within an associative array.'));
     // Check in a rendered page.
     $this->drupalGet('common-test/query-string');
-    $this->assertPattern('@<script>.+Drupal\.settings.+"currentPath":"common-test\\\/query-string"@s', 'currentPath is in the JS settings');
+    $this->assertPattern('@<script>.+drupalSettings.+"currentPath":"common-test\\\/query-string"@s', 'currentPath is in the JS settings');
     $path = array('source' => 'common-test/query-string', 'alias' => 'common-test/currentpath-check');
     path_save($path);
     $this->drupalGet('common-test/currentpath-check');
-    $this->assertPattern('@<script>.+Drupal\.settings.+"currentPath":"common-test\\\/query-string"@s', 'currentPath is in the JS settings for an aliased path');
+    $this->assertPattern('@<script>.+drupalSettings.+"currentPath":"common-test\\\/query-string"@s', 'currentPath is in the JS settings for an aliased path');
   }
 
   /**
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 0ccc358..927e01e 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1187,16 +1187,12 @@ function system_library_info() {
   );
 
   // Drupal settings.
-  $libraries['drupal.settings'] = array(
+  $libraries['drupalSettings'] = array(
     'title' => 'Drupal Settings',
     'version' => VERSION,
     'js' => array(
       array('type' => 'setting', 'data' => array()),
     ),
-    'dependencies' => array(
-      array('system', 'jquery'),
-      array('system', 'drupal'),
-    ),
   );
 
   // Drupal's Ajax framework.
@@ -1225,7 +1221,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'drupal.progress'),
       array('system', 'jquery.once'),
     ),
@@ -1241,7 +1237,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'drupal'),
       array('system', 'jquery'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
@@ -1270,7 +1266,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
@@ -1285,7 +1281,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
       array('system', 'jquery.cookie'),
     ),
@@ -1385,7 +1381,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
@@ -1404,7 +1400,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       // Vertical tabs relies on drupalGetSummary in form.js
       array('system', 'drupal.form'),
     ),
@@ -1911,7 +1907,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
@@ -1936,7 +1932,7 @@ function system_library_info() {
       array('system', 'jquery'),
       array('system', 'jquery.once'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
@@ -1949,7 +1945,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
   $libraries['drupal.system.cron'] = array(
@@ -1961,7 +1957,7 @@ function system_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
     ),
   );
diff --git a/core/modules/system/tests/modules/common_test/common_test.module b/core/modules/system/tests/modules/common_test/common_test.module
index 65fcc8a..37243cf 100644
--- a/core/modules/system/tests/modules/common_test/common_test.module
+++ b/core/modules/system/tests/modules/common_test/common_test.module
@@ -272,7 +272,7 @@ function common_test_library_info() {
  * Adds a JavaScript file and a CSS file with a query string appended.
  */
 function common_test_js_and_css_querystring() {
-   drupal_add_library('system', 'drupal.settings');
+   drupal_add_library('system', 'drupalSettings');
    drupal_add_js(drupal_get_path('module', 'node') . '/node.js');
    drupal_add_css(drupal_get_path('module', 'node') . '/node.admin.css');
    // A relative URI may have a query string.
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index d9aa9db..c28cc7b 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1798,7 +1798,7 @@ function taxonomy_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'drupal.tabledrag'),
     ),
   );
diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module
index fa4dd6f..8ff3167 100644
--- a/core/modules/toolbar/toolbar.module
+++ b/core/modules/toolbar/toolbar.module
@@ -374,7 +374,7 @@ function toolbar_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
       array('system', 'jquery.once'),
       array('system', 'jquery.cookie'),
     ),
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 3b69966..986f74d 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -3147,7 +3147,7 @@ function user_library_info() {
     'dependencies' => array(
       array('system', 'jquery'),
       array('system', 'drupal'),
-      array('system', 'drupal.settings'),
+      array('system', 'drupalSettings'),
     ),
   );
 
