diff --git a/docs/assets/css/bootstrap-responsive.css b/docs/assets/css/bootstrap-responsive.css
index 8155f0f5495eed5b6db1e7f9f54e8a666330ed3d..800c17560a46c553c9af2d7678c6b10fd8edb77b 100644
--- a/docs/assets/css/bootstrap-responsive.css
+++ b/docs/assets/css/bootstrap-responsive.css
@@ -8,10 +8,6 @@
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
 
-.clearfix {
-  *zoom: 1;
-}
-
 .clearfix:before,
 .clearfix:after {
   display: table;
@@ -100,7 +96,6 @@
   .row {
     margin-right: -15px;
     margin-left: -15px;
-    *zoom: 1;
   }
   .row:before,
   .row:after {
@@ -372,7 +367,6 @@
   .row {
     margin-right: -10px;
     margin-left: -10px;
-    *zoom: 1;
   }
   .row:before,
   .row:after {
diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css
index 4ab043d0b51d35ac6d24bbd0c93506933a9f1a38..8fa5186077a371808f7b444e2224a1a9e4bed66a 100644
--- a/docs/assets/css/bootstrap.css
+++ b/docs/assets/css/bootstrap.css
@@ -125,10 +125,6 @@ textarea {
   vertical-align: top;
 }
 
-.clearfix {
-  *zoom: 1;
-}
-
 .clearfix:before,
 .clearfix:after {
   display: table;
@@ -207,7 +203,6 @@ a:hover {
 .row {
   margin-right: -10px;
   margin-left: -10px;
-  *zoom: 1;
 }
 
 .row:before,
@@ -340,7 +335,6 @@ a:hover {
 .container {
   margin-right: auto;
   margin-left: auto;
-  *zoom: 1;
 }
 
 .container:before,
@@ -357,7 +351,6 @@ a:hover {
 .container-fluid {
   padding-right: 20px;
   padding-left: 20px;
-  *zoom: 1;
 }
 
 .container-fluid:before,
@@ -551,10 +544,6 @@ dd {
   margin-left: 10px;
 }
 
-.dl-horizontal {
-  *zoom: 1;
-}
-
 .dl-horizontal:before,
 .dl-horizontal:after {
   display: table;
@@ -853,7 +842,8 @@ input[type="radio"],
 input[type="checkbox"] {
   margin: 4px 0 0;
   margin-top: 1px \9;
-  *margin-top: 0;
+  /* IE8-9 */
+
   line-height: normal;
   cursor: pointer;
 }
@@ -871,10 +861,7 @@ input[type="checkbox"] {
 select,
 input[type="file"] {
   height: 30px;
-  /* In IE7, the height of the select element cannot be changed by height, only font-size */
-
-  *margin-top: 4px;
-  /* For IE7, add top margin to align select with labels */
+  /* In IE7, the height of the select element cannot be changed by height, only font-size. TODO: Check if this is still needed when dropping IE7 support */
 
   line-height: 30px;
 }
@@ -1204,10 +1191,6 @@ textarea[class*="span"],
   height: 30px;
 }
 
-.controls-row {
-  *zoom: 1;
-}
-
 .controls-row:before,
 .controls-row:after {
   display: table;
@@ -1419,7 +1402,6 @@ select:focus:required:invalid:focus {
   margin-bottom: 20px;
   background-color: #f5f5f5;
   border-top: 1px solid #e5e5e5;
-  *zoom: 1;
 }
 
 .form-actions:before,
@@ -1445,10 +1427,8 @@ select:focus:required:invalid:focus {
 
 .help-inline {
   display: inline-block;
-  *display: inline;
   padding-left: 5px;
   vertical-align: middle;
-  *zoom: 1;
 }
 
 .input-append,
@@ -1617,7 +1597,7 @@ input.search-query {
   padding-right: 4px \9;
   padding-left: 14px;
   padding-left: 4px \9;
-  /* IE7-8 doesn't have border-radius, so don't indent the padding */
+  /* IE8 doesn't have border-radius, so don't indent the padding */
 
   margin-bottom: 0;
   -webkit-border-radius: 15px;
@@ -1680,10 +1660,8 @@ input.search-query {
 .form-inline .input-append,
 .form-horizontal .input-append {
   display: inline-block;
-  *display: inline;
   margin-bottom: 0;
   vertical-align: middle;
-  *zoom: 1;
 }
 
 .form-search .hide,
@@ -1735,7 +1713,6 @@ legend + .control-group {
 
 .form-horizontal .control-group {
   margin-bottom: 20px;
-  *zoom: 1;
 }
 
 .form-horizontal .control-group:before,
@@ -1757,14 +1734,7 @@ legend + .control-group {
 }
 
 .form-horizontal .controls {
-  *display: inline-block;
-  *padding-left: 20px;
   margin-left: 180px;
-  *margin-left: 0;
-}
-
-.form-horizontal .controls:first-child {
-  *padding-left: 180px;
 }
 
 .form-horizontal .help-block {
@@ -1831,7 +1801,6 @@ table {
 .table-bordered {
   border: 1px solid #dddddd;
   border-collapse: separate;
-  *border-collapse: collapse;
   border-left: 0;
   -webkit-border-radius: 4px;
      -moz-border-radius: 4px;
@@ -2105,7 +2074,6 @@ table [class*=span],
   width: 14px;
   height: 14px;
   margin-top: 1px;
-  *margin-right: .3em;
   line-height: 14px;
   vertical-align: text-top;
   background-image: url("../img/glyphicons-halflings.png");
@@ -2696,10 +2664,6 @@ table [class*=span],
   position: relative;
 }
 
-.dropdown-toggle {
-  *margin-bottom: -3px;
-}
-
 .dropdown-toggle:active,
 .open .dropdown-toggle {
   outline: 0;
@@ -2754,10 +2718,8 @@ table [class*=span],
 }
 
 .dropdown-menu .divider {
-  *width: 100%;
   height: 1px;
   margin: 9px 1px;
-  *margin: -5px 0 5px;
   overflow: hidden;
   background-color: #e5e5e5;
   border-bottom: 1px solid #ffffff;
@@ -2816,10 +2778,6 @@ table [class*=span],
   background-color: transparent;
 }
 
-.open {
-  *z-index: 1000;
-}
-
 .open > .dropdown-menu {
   display: block;
 }
@@ -2989,37 +2947,31 @@ button.close {
 
 .btn {
   display: inline-block;
-  *display: inline;
   padding: 4px 12px;
   margin-bottom: 0;
-  *margin-left: .3em;
   font-size: 14px;
   line-height: 20px;
-  *line-height: 20px;
   color: #333333;
   text-align: center;
   text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
   vertical-align: middle;
   cursor: pointer;
   background-color: #f5f5f5;
-  *background-color: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
   background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
-  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
   background-repeat: repeat-x;
   border: 1px solid #bbbbbb;
-  *border: 0;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   border-bottom-color: #a2a2a2;
   -webkit-border-radius: 4px;
      -moz-border-radius: 4px;
           border-radius: 4px;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-  *zoom: 1;
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
      -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
           box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -3040,17 +2992,10 @@ button.close {
   background-color: #cccccc \9;
 }
 
-.btn:first-child {
-  *margin-left: 0;
-}
-
 .btn:hover {
   color: #333333;
   text-decoration: none;
   background-color: #e6e6e6;
-  *background-color: #d9d9d9;
-  /* Buttons in IE7 don't get borders, so darken on hover */
-
   background-position: 0 -15px;
   -webkit-transition: background-position 0.1s linear;
      -moz-transition: background-position 0.1s linear;
@@ -3157,12 +3102,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #006dcc;
-  *background-color: #0044cc;
+  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
   background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
   background-image: -o-linear-gradient(top, #0088cc, #0044cc);
   background-image: linear-gradient(to bottom, #0088cc, #0044cc);
-  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
   background-repeat: repeat-x;
   border-color: #0044cc #0044cc #002a80;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3189,12 +3133,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #faa732;
-  *background-color: #f89406;
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
   background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
   background-image: -o-linear-gradient(top, #fbb450, #f89406);
   background-image: linear-gradient(to bottom, #fbb450, #f89406);
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
   background-repeat: repeat-x;
   border-color: #f89406 #f89406 #ad6704;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3221,12 +3164,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #da4f49;
-  *background-color: #bd362f;
+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
   background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
-  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
   background-repeat: repeat-x;
   border-color: #bd362f #bd362f #802420;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3253,12 +3195,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #5bb75b;
-  *background-color: #51a351;
+  background-image: -moz-linear-gradient(top, #62c462, #51a351);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
   background-image: -webkit-linear-gradient(top, #62c462, #51a351);
   background-image: -o-linear-gradient(top, #62c462, #51a351);
   background-image: linear-gradient(to bottom, #62c462, #51a351);
-  background-image: -moz-linear-gradient(top, #62c462, #51a351);
   background-repeat: repeat-x;
   border-color: #51a351 #51a351 #387038;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3285,12 +3226,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #49afcd;
-  *background-color: #2f96b4;
+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
   background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
-  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
   background-repeat: repeat-x;
   border-color: #2f96b4 #2f96b4 #1f6377;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3317,12 +3257,11 @@ input[type="button"].btn-block {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #363636;
-  *background-color: #222222;
+  background-image: -moz-linear-gradient(top, #444444, #222222);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
   background-image: -webkit-linear-gradient(top, #444444, #222222);
   background-image: -o-linear-gradient(top, #444444, #222222);
   background-image: linear-gradient(to bottom, #444444, #222222);
-  background-image: -moz-linear-gradient(top, #444444, #222222);
   background-repeat: repeat-x;
   border-color: #222222 #222222 #000000;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -3345,36 +3284,12 @@ input[type="button"].btn-block {
   background-color: #080808 \9;
 }
 
-button.btn,
-input[type="submit"].btn {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-
 button.btn::-moz-focus-inner,
 input[type="submit"].btn::-moz-focus-inner {
   padding: 0;
   border: 0;
 }
 
-button.btn.btn-large,
-input[type="submit"].btn.btn-large {
-  *padding-top: 7px;
-  *padding-bottom: 7px;
-}
-
-button.btn.btn-small,
-input[type="submit"].btn.btn-small {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-
-button.btn.btn-mini,
-input[type="submit"].btn.btn-mini {
-  *padding-top: 1px;
-  *padding-bottom: 1px;
-}
-
 .btn-link,
 .btn-link:active,
 .btn-link[disabled] {
@@ -3408,16 +3323,9 @@ input[type="submit"].btn.btn-mini {
 .btn-group {
   position: relative;
   display: inline-block;
-  *display: inline;
-  *margin-left: .3em;
   font-size: 0;
   white-space: nowrap;
   vertical-align: middle;
-  *zoom: 1;
-}
-
-.btn-group:first-child {
-  *margin-left: 0;
 }
 
 .btn-group + .btn-group {
@@ -3613,10 +3521,6 @@ input[type="submit"].btn.btn-mini {
 
 .btn-group-vertical {
   display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
 }
 
 .btn-group-vertical .btn {
@@ -3776,20 +3680,13 @@ input[type="submit"].btn.btn-mini {
 }
 
 .nav-list .divider {
-  *width: 100%;
   height: 1px;
   margin: 9px 1px;
-  *margin: -5px 0 5px;
   overflow: hidden;
   background-color: #e5e5e5;
   border-bottom: 1px solid #ffffff;
 }
 
-.nav-tabs,
-.nav-pills {
-  *zoom: 1;
-}
-
 .nav-tabs:before,
 .nav-pills:before,
 .nav-tabs:after,
@@ -3978,10 +3875,6 @@ input[type="submit"].btn.btn-mini {
   border-color: #999999;
 }
 
-.tabbable {
-  *zoom: 1;
-}
-
 .tabbable:before,
 .tabbable:after {
   display: table;
@@ -4107,8 +4000,6 @@ input[type="submit"].btn.btn-mini {
 }
 
 .navbar {
-  *position: relative;
-  *z-index: 2;
   margin-bottom: 20px;
   overflow: visible;
   color: #777777;
@@ -4130,7 +4021,6 @@ input[type="submit"].btn.btn-mini {
      -moz-border-radius: 4px;
           border-radius: 4px;
   filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
-  *zoom: 1;
   -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
      -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
           box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
@@ -4204,7 +4094,6 @@ input[type="submit"].btn.btn-mini {
 
 .navbar-form {
   margin-bottom: 0;
-  *zoom: 1;
 }
 
 .navbar-form:before,
@@ -4389,12 +4278,11 @@ input[type="submit"].btn.btn-mini {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #ededed;
-  *background-color: #e5e5e5;
+  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
   background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
   background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
   background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
-  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
   background-repeat: repeat-x;
   border-color: #e5e5e5 #e5e5e5 #bfbfbf;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -4637,12 +4525,11 @@ input[type="submit"].btn.btn-mini {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #0e0e0e;
-  *background-color: #040404;
+  background-image: -moz-linear-gradient(top, #151515, #040404);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
   background-image: -webkit-linear-gradient(top, #151515, #040404);
   background-image: -o-linear-gradient(top, #151515, #040404);
   background-image: linear-gradient(to bottom, #151515, #040404);
-  background-image: -moz-linear-gradient(top, #151515, #040404);
   background-repeat: repeat-x;
   border-color: #040404 #040404 #000000;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
@@ -4677,9 +4564,7 @@ input[type="submit"].btn.btn-mini {
 
 .breadcrumb li {
   display: inline-block;
-  *display: inline;
   text-shadow: 0 1px 0 #ffffff;
-  *zoom: 1;
 }
 
 .breadcrumb .divider {
@@ -4697,13 +4582,11 @@ input[type="submit"].btn.btn-mini {
 
 .pagination ul {
   display: inline-block;
-  *display: inline;
   margin-bottom: 0;
   margin-left: 0;
   -webkit-border-radius: 4px;
      -moz-border-radius: 4px;
           border-radius: 4px;
-  *zoom: 1;
   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
      -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
           box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -4839,7 +4722,6 @@ input[type="submit"].btn.btn-mini {
   margin: 20px 0;
   text-align: center;
   list-style: none;
-  *zoom: 1;
 }
 
 .pager:before,
@@ -4996,7 +4878,6 @@ input[type="submit"].btn.btn-mini {
   -webkit-border-radius: 0 0 6px 6px;
      -moz-border-radius: 0 0 6px 6px;
           border-radius: 0 0 6px 6px;
-  *zoom: 1;
   -webkit-box-shadow: inset 0 1px 0 #ffffff;
      -moz-box-shadow: inset 0 1px 0 #ffffff;
           box-shadow: inset 0 1px 0 #ffffff;
@@ -5249,7 +5130,6 @@ input[type="submit"].btn.btn-mini {
 .thumbnails {
   margin-left: -20px;
   list-style: none;
-  *zoom: 1;
 }
 
 .thumbnails:before,
diff --git a/less/bootstrap.less b/less/bootstrap.less
index a097081732925f99da9f6e48fada79cc8348ccdd..7117ca345fe574dbd5e2fda91ae593fa5aa6f4c2 100644
--- a/less/bootstrap.less
+++ b/less/bootstrap.less
@@ -36,7 +36,7 @@
 // Components: Buttons & Alerts
 @import "buttons.less";
 @import "button-groups.less";
-@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
+@import "alerts.less";
 
 // Components: Nav
 @import "navs.less";
diff --git a/less/breadcrumbs.less b/less/breadcrumbs.less
index fd269b31a07564188d24cf3ff29bc25d54220d88..221493b4a9f0d0ac7b992e67ea012f06be625df9 100644
--- a/less/breadcrumbs.less
+++ b/less/breadcrumbs.less
@@ -11,7 +11,6 @@
   .border-radius(4px);
   li {
     display: inline-block;
-    .ie7-inline-block();
     text-shadow: 0 1px 0 @white;
   }
   .divider {
diff --git a/less/button-groups.less b/less/button-groups.less
index 46837e628a86156721253e70e7dcee9d68823866..cf48b0ebc8b15eecba8f626a9074f63f84f8ab94 100644
--- a/less/button-groups.less
+++ b/less/button-groups.less
@@ -7,11 +7,9 @@
 .btn-group {
   position: relative;
   display: inline-block;
-  .ie7-inline-block();
   font-size: 0; // remove as part 1 of font-size inline-block hack
   vertical-align: middle; // match .btn alignment given font-size hack above
   white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
-  .ie7-restore-left-whitespace();
 }
 
 // Space out series of button groups
@@ -215,8 +213,7 @@
 // ----------------------
 
 .btn-group-vertical {
-  display: inline-block; // makes buttons only take up the width they need
-  .ie7-inline-block();
+  display: inline-block; // Make buttons only take up the width they need
 }
 .btn-group-vertical .btn {
   display: block;
diff --git a/less/buttons.less b/less/buttons.less
index 223d7439b83a627834cde12ac4efc9343414246a..33441ac7017ddb07baa9b4c198bf02a62b1b3c53 100644
--- a/less/buttons.less
+++ b/less/buttons.less
@@ -9,21 +9,17 @@
 // Core
 .btn {
   display: inline-block;
-  .ie7-inline-block();
   padding: 4px 12px;
   margin-bottom: 0; // For input.btn
   font-size: @baseFontSize;
   line-height: @baseLineHeight;
-  *line-height: @baseLineHeight;
   text-align: center;
   vertical-align: middle;
   cursor: pointer;
   .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
   border: 1px solid @btnBorder;
-  *border: 0; // Remove the border to prevent IE7's black border on input:focus
   border-bottom-color: darken(@btnBorder, 10%);
   .border-radius(4px);
-  .ie7-restore-left-whitespace(); // Give IE7 some love
   .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
 
   // Hover state
@@ -31,7 +27,6 @@
     color: @grayDark;
     text-decoration: none;
     background-color: darken(@white, 10%);
-    *background-color: darken(@white, 15%); /* Buttons in IE7 don't get borders, so darken on hover */
     background-position: 0 -15px;
 
     // transition is only when going to hover, otherwise the background
@@ -183,22 +178,6 @@ input[type="submit"].btn {
     border: 0;
   }
 
-  // IE7 has some default padding on button controls
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-
-  &.btn-large {
-    *padding-top: 7px;
-    *padding-bottom: 7px;
-  }
-  &.btn-small {
-    *padding-top: 3px;
-    *padding-bottom: 3px;
-  }
-  &.btn-mini {
-    *padding-top: 1px;
-    *padding-bottom: 1px;
-  }
 }
 
 
diff --git a/less/code.less b/less/code.less
index f1851a074c5d3f38849233e3356a7bcba20ee20e..a60fdf0807449625e4ec8b1e8343920db22a1125 100644
--- a/less/code.less
+++ b/less/code.less
@@ -33,7 +33,7 @@ pre {
   white-space: pre;
   white-space: pre-wrap;
   background-color: #f5f5f5;
-  border: 1px solid #ccc; // fallback for IE7-8
+  border: 1px solid #ccc; // IE8 fallback
   border: 1px solid rgba(0,0,0,.15);
   .border-radius(4px);
 
diff --git a/less/dropdowns.less b/less/dropdowns.less
index bed158612fffd1f304ab271b3473706b85ecbab1..ef3da396f766e21ec0ece6d1c541076aeff27780 100644
--- a/less/dropdowns.less
+++ b/less/dropdowns.less
@@ -8,10 +8,6 @@
 .dropdown {
   position: relative;
 }
-.dropdown-toggle {
-  // The caret makes the toggle a bit too tall in IE7
-  *margin-bottom: -3px;
-}
 .dropdown-toggle:active,
 .open .dropdown-toggle {
   outline: 0;
@@ -50,7 +46,7 @@
   margin: 2px 0 0; // override default ul
   list-style: none;
   background-color: @dropdownBackground;
-  border: 1px solid #ccc; // Fallback for IE7-8
+  border: 1px solid #ccc; // IE8 fallback
   border: 1px solid @dropdownBorder;
   *border-right-width: 2px;
   *border-bottom-width: 2px;
@@ -122,10 +118,6 @@
 // Open state for the dropdown
 // ---------------------------
 .open {
-  // IE7's z-index only goes to the nearest positioned ancestor, which would
-  // make the menu appear below buttons that appeared later on the page
-  *z-index: @zindexDropdown;
-
   & > .dropdown-menu {
     display: block;
   }
diff --git a/less/forms.less b/less/forms.less
index d10d704b1f400c82d84b745b8b31d5c534e90da3..d5c032b8407549774b85095ad61dc1a763c26245 100644
--- a/less/forms.less
+++ b/less/forms.less
@@ -135,7 +135,6 @@ input[type="color"],
 input[type="radio"],
 input[type="checkbox"] {
   margin: 4px 0 0;
-  *margin-top: 0; /* IE7 */
   margin-top: 1px \9; /* IE8-9 */
   line-height: normal;
   cursor: pointer;
@@ -155,8 +154,7 @@ input[type="checkbox"] {
 // Set the height of select and file controls to match text inputs
 select,
 input[type="file"] {
-  height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
-  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
+  height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size. TODO: Check if this is still needed when dropping IE7 support */
   line-height: @inputHeight;
 }
 
@@ -403,7 +401,6 @@ select:focus:required:invalid {
 
 .help-inline {
   display: inline-block;
-  .ie7-inline-block();
   vertical-align: middle;
   padding-left: 5px;
 }
@@ -539,7 +536,7 @@ input.search-query {
   padding-right: 14px;
   padding-right: 4px \9;
   padding-left: 14px;
-  padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
+  padding-left: 4px \9; /* IE8 doesn't have border-radius, so don't indent the padding */
   margin-bottom: 0; // Remove the default margin on all inputs
   .border-radius(15px);
 }
@@ -582,7 +579,6 @@ input.search-query {
   .input-prepend,
   .input-append {
     display: inline-block;
-    .ie7-inline-block();
     margin-bottom: 0;
     vertical-align: middle;
   }
@@ -653,15 +649,7 @@ legend + .control-group {
   }
   // Move over all input controls and content
   .controls {
-    // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
-    // don't inherit the margin of the parent, in this case .controls
-    *display: inline-block;
-    *padding-left: 20px;
     margin-left: @horizontalComponentOffset;
-    *margin-left: 0;
-    &:first-child {
-      *padding-left: @horizontalComponentOffset;
-    }
   }
   // Remove bottom margin on block level help text since that's accounted for on .control-group
   .help-block {
diff --git a/less/navbar.less b/less/navbar.less
index 58621b4739d9374e313c801aa5b1a97e07bdfef8..a0483fe7e4605c8d05b86e1b3eb4aa2fb5aa1a8a 100644
--- a/less/navbar.less
+++ b/less/navbar.less
@@ -11,10 +11,6 @@
   overflow: visible;
   margin-bottom: @baseLineHeight;
   color: @navbarText;
-
-  // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
-  *position: relative;
-  *z-index: 2;
 }
 
 // Inner for background effects
@@ -450,7 +446,7 @@
       .transition(none);
       .placeholder(@navbarInverseSearchPlaceholderColor);
 
-      // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
+      // Focus states (we use .focused since IE8 and down doesn't support :focus)
       &:focus,
       &.focused {
         padding: 5px 15px;
diff --git a/less/pagination.less b/less/pagination.less
index 88065aa2201c92ab51774d95b20459968d6836db..b16c851861d8d0cd1171aa2446524a0c25fd321b 100644
--- a/less/pagination.less
+++ b/less/pagination.less
@@ -10,7 +10,6 @@
 .pagination ul {
   // Allow for text-based alignment
   display: inline-block;
-  .ie7-inline-block();
   // Reset default ul styles
   margin-left: 0;
   margin-bottom: 0;
diff --git a/less/reset.less b/less/reset.less
index ed3fecf4162a3fbe9571b7a59410211b3079c0a1..d80bd17e8a88cdf021c441a470e405daf5d6efe5 100644
--- a/less/reset.less
+++ b/less/reset.less
@@ -79,7 +79,7 @@ sub {
 img {
   /* Responsive images (ensure images don't scale beyond their parents) */
   max-width: 100%; /* Part 1: Set a maxium relative to the parent */
-  width: auto\9; /* IE7-8 need help adjusting responsive images */
+  width: auto\9; /* IE8 need help adjusting responsive images */
   height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
 
   vertical-align: middle;
diff --git a/less/sprites.less b/less/sprites.less
index 6d3aaef323ed1c08434a31c34827d4cc70868fd4..910a1156ecfb0f96b0546af21c37cb1643f45f18 100644
--- a/less/sprites.less
+++ b/less/sprites.less
@@ -19,7 +19,6 @@
   display: inline-block;
   width: 14px;
   height: 14px;
-  .ie7-restore-right-whitespace();
   line-height: 14px;
   vertical-align: text-top;
   background-image: url("@{iconSpritePath}");
diff --git a/less/tables.less b/less/tables.less
index e5b3f397997b42d9bf096829d74be0c3698c7ad5..2b1dd7d223c0af272409c5a74e17a90c7c24df75 100644
--- a/less/tables.less
+++ b/less/tables.less
@@ -69,7 +69,6 @@ table {
 .table-bordered {
   border: 1px solid @tableBorder;
   border-collapse: separate; // Done so we can round those corners!
-  *border-collapse: collapse; // IE7 can't round corners anyway
   border-left: 0;
   .border-radius(4px);
   th,