diff --git misc/tabledrag.js misc/tabledrag.js
index 7b526e5..0e16c74 100644
--- misc/tabledrag.js
+++ misc/tabledrag.js
@@ -304,11 +304,6 @@
       $(self.oldRowElement).removeClass('drag-previous');
     }
 
-    // Hack for IE6 that flickers uncontrollably if select lists are moved.
-    if (navigator.userAgent.indexOf('MSIE 6.') != -1) {
-      $('select', this.table).css('display', 'none');
-    }
-
     // Hack for Konqueror, prevent the blur handler from firing.
     // Konqueror always gives links focus, even after returning false on mousedown.
     self.safeBlur = false;
@@ -562,11 +557,6 @@
     self.dragObject = null;
     $('body').removeClass('drag');
     clearInterval(self.scrollInterval);
-
-    // Hack for IE6 that flickers uncontrollably if select lists are moved.
-    if (navigator.userAgent.indexOf('MSIE 6.') != -1) {
-      $('select', this.table).css('display', 'block');
-    }
   }
 };
 
diff --git misc/vertical-tabs.css misc/vertical-tabs.css
index 10e8153..1f86bcf 100644
--- misc/vertical-tabs.css
+++ misc/vertical-tabs.css
@@ -2,15 +2,13 @@
 div.vertical-tabs {
   margin: 1em 0 1em 15em; /* LTR */
   border: 1px solid #ccc;
-  position: relative; /* IE6/7 */
+  position: relative; /* IE7 */
 }
 .vertical-tabs ul.vertical-tabs-list {
   width: 15em;
   list-style: none;
-  list-style-image: none; /* IE6 */
   border-top: 1px solid #ccc;
   padding: 0;
-  position: relative; /* IE6 */
   margin: -1px 0 -1px -15em; /* LTR */
   float: left; /* LTR */
 }
@@ -70,8 +68,4 @@
   -moz-box-sizing: border-box;
   -webkit-box-sizing: border-box;
   box-sizing: border-box;
-}
-* html .vertical-tabs .form-type-textfield,
-* html .vertical-tabs .form-textarea-wrapper {
-  width: 95%; /* IE6 */
 }
diff --git modules/color/color.js modules/color/color.js
index 43099ad..3e53ce1 100644
--- modules/color/color.js
+++ modules/color/color.js
@@ -43,14 +43,6 @@
       }
     }
 
-    // Fix preview background in IE6.
-    if (navigator.appVersion.match(/MSIE [0-6]\./)) {
-      var e = $('#preview #img')[0];
-      var image = e.currentStyle.backgroundImage;
-      e.style.backgroundImage = 'none';
-      e.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image.substring(5, image.length - 2) + "')";
-    }
-
     // Set up colorScheme selector.
     $('#edit-scheme', form).change(function () {
       var schemes = settings.color.schemes, colorScheme = this.options[this.selectedIndex].value;
diff --git modules/overlay/overlay-child.css modules/overlay/overlay-child.css
index 5a297cb..c757d51 100644
--- modules/overlay/overlay-child.css
+++ modules/overlay/overlay-child.css
@@ -127,15 +127,6 @@
 }
 
 /**
- * IE6 shows elements with position:fixed as position:static so replace
- * it with position:absolute;
- */
-* html #overlay-close,
-* html #overlay-close:hover {
-  position: absolute;
-}
-
-/**
  * Disable message.
  */
 #overlay-disable-message {
diff --git modules/overlay/overlay-parent.js modules/overlay/overlay-parent.js
index 67c97b8..79defb2 100644
--- modules/overlay/overlay-parent.js
+++ modules/overlay/overlay-parent.js
@@ -375,11 +375,6 @@
     return;
   }
 
-  // IE6 uses position:absolute instead of position:fixed.
-  if (typeof document.body.style.maxHeight != 'string') {
-    this.activeFrame.height($(window).height());
-  }
-
   // Allow other scripts to respond to this event.
   $(document).trigger('drupalOverlayResize');
 };
@@ -409,8 +404,6 @@
 
   var documentHeight = this.iframeWindow.document.body.clientHeight;
   var documentWidth = this.iframeWindow.document.body.clientWidth;
-  // IE6 doesn't support maxWidth, use width instead.
-  var maxWidthName = (typeof document.body.style.maxWidth == 'string') ? 'maxWidth' : 'width';
 
   // Consider any element that should be visible above the overlay (such as
   // a toolbar).
@@ -423,9 +416,9 @@
     }
 
     // Prevent displaced elements overlapping window's scrollbar.
-    var currentMaxWidth = parseInt($(this).css(maxWidthName));
+    var currentMaxWidth = parseInt($(this).css('maxWidth'));
     if ((data.drupalOverlay && data.drupalOverlay.maxWidth) || isNaN(currentMaxWidth) || currentMaxWidth > maxWidth || currentMaxWidth <= 0) {
-      $(this).css(maxWidthName, maxWidth);
+      $(this).css('maxWidth', maxWidth);
       (data.drupalOverlay = data.drupalOverlay || {}).maxWidth = true;
     }
 
@@ -824,8 +817,8 @@
  *   the entire page.
  */
 Drupal.overlay.makeDocumentUntabbable = function (context) {
-  // Manipulating tabindexes for the entire document is unacceptably slow in IE6
-  // and IE7, so in those browsers, the underlying page will still be reachable
+  // Manipulating tabindexes for the entire document is unacceptably slow in
+  // IE7, so in those browsers, the underlying page will still be reachable
   // via the tab key. However, we still make the links within the Disable
   // message unreachable, because the same message also exists within the
   // child document. The duplicate copy in the underlying document is only for
@@ -871,9 +864,9 @@
  *   the entire page.
  */
 Drupal.overlay.makeDocumentTabbable = function (context) {
-  // Manipulating tabindexes is unacceptably slow in IE6 and IE7. In those
-  // browsers, the underlying page was never made unreachable via tab, so
-  // there is no work to be done here.
+  // Manipulating tabindexes is unacceptably slow in IE7. In those browsers,
+  // the underlying page was never made unreachable via tab, so there is no
+  // work to be done here.
   if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 8) {
     return;
   }
@@ -885,7 +878,7 @@
   // tabindex attributes.
   var $tabindex = $('[tabindex]', context);
   if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 8) {
-    // removeAttr('tabindex') is broken in IE6-7, but the DOM function
+    // removeAttr('tabindex') is broken in IE7, but the DOM function
     // removeAttribute works.
     var i;
     var length = $tabindex.length;
diff --git modules/system/system.admin.css modules/system/system.admin.css
index 43340b5..7299484 100644
--- modules/system/system.admin.css
+++ modules/system/system.admin.css
@@ -243,7 +243,6 @@
 .exposed-filters .filters {
   float: left; /* LTR */
   margin-right: 1em; /* LTR */
-  width: 25em; /* IE6 */
 }
 .exposed-filters .form-item {
   margin: 0 0 0.1em 0;
diff --git modules/system/system.base.css modules/system/system.base.css
index a6748de..4ce63cf 100644
--- modules/system/system.base.css
+++ modules/system/system.base.css
@@ -227,7 +227,7 @@
  */
 .element-invisible {
   position: absolute !important;
-  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px 1px 1px 1px); /* IE7 */
   clip: rect(1px, 1px, 1px, 1px);
 }
 
@@ -252,10 +252,6 @@
   height: 0;
   clear: both;
   visibility: hidden;
-}
-/* IE6 */
-* html .clearfix {
-  height: 1%;
 }
 /* IE7 */
 *:first-child + html .clearfix {
diff --git themes/bartik/template.php themes/bartik/template.php
index d523a0a..8d2b8c4 100644
--- themes/bartik/template.php
+++ themes/bartik/template.php
@@ -23,7 +23,6 @@
 
   // Add conditional stylesheets for IE
   drupal_add_css(path_to_theme() . '/css/ie.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lte IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
-  drupal_add_css(path_to_theme() . '/css/ie6.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'IE 6', '!IE' => FALSE), 'preprocess' => FALSE));
 }
 
 /**
diff --git themes/garland/style-rtl.css themes/garland/style-rtl.css
index 58aed57..7f36830 100644
--- themes/garland/style-rtl.css
+++ themes/garland/style-rtl.css
@@ -290,7 +290,7 @@
   float: left;
 }
 
-/* Fix Opera, IE6 and IE7 header width */
+/* Fix Opera and IE7 header width */
 #wrapper #container #header {
   position: relative;
   width: 100%;
diff --git themes/garland/template.php themes/garland/template.php
index 1b144f1..fc09571 100644
--- themes/garland/template.php
+++ themes/garland/template.php
@@ -40,8 +40,6 @@
   if (theme_get_setting('garland_width') == 'fluid') {
     $vars['classes_array'][] = 'fluid-width';
   }
-  // Add conditional CSS for IE6.
-  drupal_add_css(path_to_theme() . '/fix-ie.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lt IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
 }
 
 /**
diff --git themes/seven/reset.css themes/seven/reset.css
index 0bdc29a..78602de 100644
--- themes/seven/reset.css
+++ themes/seven/reset.css
@@ -205,13 +205,6 @@
   display: none;
   clear: none;
 }
-/* IE6 */
-* html .form-item,
-* html ul.links,
-* html div.admin-panel .body,
-* html .clearfix {
-  height: 1%;
-}
 /* IE7 */
 *:first-child + html .form-item,
 *:first-child + html ul.links,
diff --git themes/seven/template.php themes/seven/template.php
index 5be459b..9fc7b7a 100644
--- themes/seven/template.php
+++ themes/seven/template.php
@@ -18,8 +18,6 @@
 function seven_preprocess_html(&$vars) {
   // Add conditional CSS for IE8 and below.
   drupal_add_css(path_to_theme() . '/ie.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lte IE 8', '!IE' => FALSE), 'preprocess' => FALSE));
-  // Add conditional CSS for IE6.
-  drupal_add_css(path_to_theme() . '/ie6.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lt IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
 }
 
 /**
diff --git themes/seven/vertical-tabs.css themes/seven/vertical-tabs.css
index 4f66222..f06aade 100644
--- themes/seven/vertical-tabs.css
+++ themes/seven/vertical-tabs.css
@@ -87,7 +87,3 @@
   -webkit-box-sizing: border-box;
   box-sizing: border-box;
 }
-* html .vertical-tabs .form-type-textfield,
-* html .vertical-tabs .form-textarea-wrapper {
-  width: 95%; /* IE6 */
-}
diff --git themes/stark/layout.css themes/stark/layout.css
index 43bb93f..7e49d74 100644
--- themes/stark/layout.css
+++ themes/stark/layout.css
@@ -10,9 +10,7 @@
  * This layout method works reasonably well, but shouldn't be used on a
  * production site because it can break. For example, if an over-large image
  * (one that is wider than 20% of the viewport) is in the left sidebar, the
- * image will overlap with the #content to the right. The exception to this
- * is IE6 which will just hide the navigation block completely in these
- * instances due to a positioning bug.
+ * image will overlap with the #content to the right.
  */
 
 #content,
