diff --git a/core/includes/ajax.inc b/core/includes/ajax.inc
index 8817356..52f2736 100644
--- a/core/includes/ajax.inc
+++ b/core/includes/ajax.inc
@@ -276,7 +276,7 @@ function ajax_render($commands = array()) {
 
   $extra_commands = array();
   if (!empty($styles)) {
-    $extra_commands[] = ajax_command_prepend('head', $styles);
+    $extra_commands[] = ajax_command_add_css($styles);
   }
   if (!empty($scripts_header)) {
     $extra_commands[] = ajax_command_prepend('head', $scripts_header);
@@ -1209,3 +1209,24 @@ function ajax_command_restripe($selector) {
     'selector' => $selector,
   );
 }
+
+/**
+ * Creates a Drupal Ajax 'addCSS' command.
+ *
+ * This method imports stylesheets via Ajax in a cross-browser compatible way.
+ *
+ * This command is implemented by Drupal.ajax.prototype.commands.addCSS()
+ * defined in misc/ajax.js.
+ *
+ * @param $styles
+ *   A string containing '@import' statements for stylesheets to be added.
+ *
+ * @return
+ *   An array suitable for use with the ajax_render() function.
+ */
+function ajax_command_add_css($styles) {
+  return array(
+    'command' => 'addCSS',
+    'data' => $styles,
+  );
+}
diff --git a/core/includes/common.inc b/core/includes/common.inc
index 17f83ad..f32e464 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -3349,7 +3349,7 @@ function drupal_pre_render_styles($elements) {
             $import_batch = array_slice($import, 0, 31);
             $import = array_slice($import, 31);
             $element = $style_element_defaults;
-            $element['#value'] = implode("\n", $import_batch);
+            $element['#value'] = "\n" . implode("\n", $import_batch) . "\n";
             $element['#attributes']['media'] = $group['media'];
             $element['#browsers'] = $group['browsers'];
             $elements[] = $element;
diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index 652b8e2..2e479c4 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -616,6 +616,24 @@ Drupal.ajax.prototype.commands = {
       .removeClass('odd even')
       .filter(':even').addClass('odd').end()
       .filter(':odd').addClass('even');
+  },
+
+  /**
+   * Command to add CSS.
+   *
+   * Uses the proprietary addImport method if available, since browsers which
+   * support that method ignore @import statements in dynamically added
+   * stylesheets (e.g., IE).
+   */
+  addCSS: function (ajax, response, status) {
+    // Add the styles in the standard way.
+    $('head').prepend(response.data);
+    // Use the proprietary addImport method to force loading of styles.
+    if (document.styleSheets[0].addImport) {
+      for (var match in response.data.match(/^@import url\("(.*)"\);$/igm)) {
+        document.styleSheets[0].addImport(match);
+      }
+    }
   }
 };
 
