diff --git a/includes/admin.inc b/includes/admin.inc
index de7976e..3d7abb3 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -4937,6 +4937,10 @@ function theme_views_ui_style_plugin_table($variables) {
       'data' => t('Default sort'),
       'align' => 'center',
     ),
+    array(
+      'data' => t('Hide empty column'),
+      'align' => 'center',
+    ),
   );
   $rows = array();
   foreach (element_children($form['columns']) as $id) {
@@ -4964,11 +4968,12 @@ function theme_views_ui_style_plugin_table($variables) {
       $row[] = '';
       $row[] = '';
     }
+    $row[] = drupal_render($form['info'][$id]['empty_column']);
     $rows[] = $row;
   }
 
   // Add the special 'None' row.
-  $rows[] = array(t('None'), '', '', '', '', '', array('align' => 'center', 'data' => drupal_render($form['default'][-1])));
+  $rows[] = array(t('None'), '', '', '', '', '', array('align' => 'center', 'data' => drupal_render($form['default'][-1])), '');
 
   $output .= theme('table', array('header' => $header, 'rows' => $rows));
   $output .= drupal_render_children($form);
diff --git a/plugins/views_plugin_style_table.inc b/plugins/views_plugin_style_table.inc
index 314b66a..483b155 100644
--- a/plugins/views_plugin_style_table.inc
+++ b/plugins/views_plugin_style_table.inc
@@ -243,6 +243,11 @@ class views_plugin_style_table extends views_plugin_style {
         '#default_value' => isset($this->options['info'][$field]['separator']) ? $this->options['info'][$field]['separator'] : '',
         '#dependency' => array($id => array($field)),
       );
+      $form['info'][$field]['empty_column'] = array(
+        '#type' => 'checkbox',
+        '#default_value' => isset($this->options['info'][$field]['empty_column']) ? $this->options['info'][$field]['empty_column'] : FALSE,
+        '#dependency' => array($id => array($field)),
+      );
 
       // markup for the field name
       $form['info'][$field]['name'] = array(
diff --git a/theme/theme.inc b/theme/theme.inc
index b0f235f..eb38580 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -524,6 +524,20 @@ function template_preprocess_views_view_table(&$vars) {
         $vars['rows'][$num][$column] .= $field_output;
       }
     }
+
+    // Remove columns if the option is hide empty column is checked and the field is not empty.
+    if (!empty($options['info'][$field]['empty_column'])) {
+      $empty = TRUE;
+      foreach ($vars['rows'] as $num => $columns) {
+        $empty &= empty($columns[$column]);
+      }
+      if ($empty) {
+        foreach ($vars['rows'] as $num => &$columns) {
+          unset($columns[$column]);
+          unset($vars['header'][$column]);
+        }
+      }
+    }
   }
 
   $count = 0;
