Index: tableform.module
===================================================================
--- tableform.module	(revision 2020)
+++ tableform.module	(working copy)
@@ -82,14 +82,21 @@
   $element = $variables['element'];
   $rows = array();
   $header = array();
-  
+  drupal_add_js('misc/tableselect.js');
   // process header cells
   if (!empty($element['#header'])) {
     foreach ($element['#header'] as $key => $cell) {
-      $header[] = tableform_render_cell($element, $cell, $key);  
+      //$header[] = tableform_render_cell($element, $cell, $key);  
+      $head = array(
+        'data' => tableform_render_cell($element, $cell, $key),
+      );  
+      if (is_array($cell) && isset($cell['#head_attributes'])) {
+        $head += $cell['#head_attributes'];
+      } 
+      $header[] = $head;   
     }
   }
-
+  array_unshift($header, array('class' => array('select-all')));
   // process rows
   if (!empty($element['#options'])) {
     foreach ($element['#options'] as $row) {
@@ -98,7 +105,14 @@
       );
       
       foreach ($row as $key => $cell) {
-        $rendered['data'][] = tableform_render_cell($element, $cell, $key);
+       // $rendered['data'][] = tableform_render_cell($element, $cell, $key);
+        $td = array(
+             'data' => tableform_render_cell($element, $cell, $key),
+       );
+        if (is_array($cell) && isset($cell['#td_attributes'])) {
+          $td += $cell['#td_attributes'];
+        }
+        $rendered['data'][] = $td;
       }
       
       $rows[] = $rendered;
