diff --git page.tpl.php page.tpl.php
index 1ada51e..8b9b7f4 100644
--- page.tpl.php
+++ page.tpl.php
@@ -7,7 +7,7 @@
 
   <?php print $head; ?>
   <?php print $styles; ?>
-  <!--[if lte IE 7]>
+  <!--[if lte IE 8]>
     <style type="text/css" media="all">@import "<?php echo $base_path . path_to_theme() ?>/ie.css";</style>
   <![endif]-->
   <!--[if lte IE 6]>
diff --git style.css style.css
index 7529049..b29998d 100644
--- style.css
+++ style.css
@@ -567,17 +567,18 @@ table.system-status-report tr.error td {
  */
 fieldset {
   border: 1px solid #ccc;
-  padding: 2.5em 1em 1em;
+  padding: 2.5em 0 0 0;
   position: relative;
   margin: 1em 0;
 }
 fieldset .fieldset-legend {
   margin-top: 0.5em;
+  padding-left: 15px;
   position: absolute;
   text-transform: uppercase;
 }
 fieldset .fieldset-wrapper {
-  padding: 0 0 13px;
+  padding: 0 13px 13px 15px;
 }
 fieldset.collapsed {
   background-color: transparent;
@@ -585,12 +586,19 @@ fieldset.collapsed {
 html.js fieldset.collapsed {
   border-width: 1px;
   height: auto;
+  margin: 1em 0;
 }
 html.js fieldset.collapsed legend * {
-    display: inline;
+  display: inline;
 }
 html.js fieldset.collapsible legend a {
-    padding-left: 0;
+  padding-left: 0;
+}
+html.js fieldset.collapsible .fieldset-legend {
+  background: url("/misc/menu-expanded.png") no-repeat scroll 5px 65% transparent
+}
+html.js fieldset.collapsed .fieldset-legend {
+  background: url("/misc/menu-collapsed.png") no-repeat scroll 5px 50% transparent
 }
 fieldset fieldset {
   background-color: #fff;
diff --git template.php template.php
index da5ad95..f889ca4 100644
--- template.php
+++ template.php
@@ -91,5 +91,29 @@ function seven_fieldset($element) {
     }
   }
 
-  return '<fieldset'. drupal_attributes($element['#attributes']) .'>'. ($element['#title'] ? '<legend><span class="fieldset-legend">'. $element['#title'] .'</span></legend>' : '') . (isset($element['#description']) && $element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . (!empty($element['#children']) ? $element['#children'] : '') . (isset($element['#value']) ? $element['#value'] : '') ."</fieldset>\n";
+  $output = '<fieldset' . drupal_attributes($element['#attributes']) . '>';
+  if (!empty($element['#title'])) {
+    // Always wrap fieldset legends in a SPAN for CSS positioning.
+    $output .= '<legend><span class="fieldset-legend">' . $element['#title'] . '</span></legend>';
+  }
+  // Add a wrapper if this fieldset is not collapsible.
+  // theme_fieldset() in D7 adds a wrapper to all fieldsets, however in D6 this
+  // wrapper is added by Drupal.behaviors.collapse(), but only to collapsible
+  // fieldsets. So to ensure the wrapper is consistantly added here we add the
+  // wrapper to the markup, but only for non collapsible fieldsets.
+  if (empty($element['#collapsible'])) {
+    $output .= '<div class="fieldset-wrapper">';
+  }
+  if (!empty($element['#description'])) {
+    $output .= '<div class="description">' . $element['#description'] . '</div>';
+  }
+  $output .= $element['#children'];
+  if (isset($element['#value'])) {
+    $output .= $element['#value'];
+  }
+  if (empty($element['#collapsible'])) {
+    $output .= '</div>';
+  }
+  $output .= "</fieldset>\n";
+  return $output;
 }
