diff --git a/theme/theme.inc b/theme/theme.inc
index 3958b97..6112947 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -459,6 +459,7 @@ function template_preprocess_views_view_table(&$vars) {
   }
 
   $header = array();
+  $vars['header_empty'] = TRUE;
 
   // Fields must be rendered in order as of Views 2.3, so we will pre-render
   // everything.
@@ -519,6 +520,7 @@ function template_preprocess_views_view_table(&$vars) {
         if ($element_label_type) {
           $vars['header'][$field] = '<' . $element_label_type . '>' . $vars['header'][$field] . '</' . $element_label_type . '>';
         }
+        $vars['header_empty'] = FALSE;
       }
 
     }
diff --git a/theme/views-view-table.tpl.php b/theme/views-view-table.tpl.php
index 0b69c74..72e8b16 100644
--- a/theme/views-view-table.tpl.php
+++ b/theme/views-view-table.tpl.php
@@ -5,6 +5,7 @@
  *
  * - $title : The title of this group of rows.  May be empty.
  * - $header: An array of header labels keyed by field id.
+ * - $header_empty: A boolean to indicate whether or not all labels are empty.
  * - $header_classes: An array of header classes keyed by field id.
  * - $fields: An array of CSS IDs to use for each field id.
  * - $classes: A class or classes to apply to the table, based on settings.
@@ -21,6 +22,7 @@
   <?php if (!empty($title)) : ?>
     <caption><?php print $title; ?></caption>
   <?php endif; ?>
+  <?php if (!$header_empty) : ?>
   <thead>
     <tr>
       <?php foreach ($header as $field => $label): ?>
@@ -30,6 +32,7 @@
       <?php endforeach; ?>
     </tr>
   </thead>
+  <?php endif; ?>
   <tbody>
     <?php foreach ($rows as $count => $row): ?>
       <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
