Index: datatables.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/datatables/datatables.module,v
retrieving revision 1.3.4.7
diff -u -p -r1.3.4.7 datatables.module
--- datatables.module	5 Jan 2011 03:45:15 -0000	1.3.4.7
+++ datatables.module	17 Jan 2011 09:33:56 -0000
@@ -137,17 +137,15 @@ function datatables_views_api() {
  * @see theme_table
  */
 function theme_datatable($variables) {
-  $header = $variables['header'];
+  $header = &$variables['header'];
   $rows = $variables['rows'];
-  $attributes = $variables['attributes'];
-  $caption = $variables['caption'];
-
+  $attributes = &$variables['attributes'];
   if ($rows) {
     $datatable_options = $attributes['datatable_options'];
     
     // Column settings can either be set with the global options
     // or in each header definition.
-    if (!$datatable_options['aoColumns']) {
+    if (isset($datatable_options['aoColumns'])) {
       foreach ($header as $key => $cell) {
         $datatable_options['aoColumns'][] = $cell['datatable_options'];
         unset($header[$key]['datatable_options']);
@@ -155,16 +153,15 @@ function theme_datatable($variables) {
     }
     
     // Set unique id
-    if (!$attributes['id']) {
+    if (!isset($attributes['id'])) {
       $attributes['id'] = _datatables_get_id();
     }
-
-    drupal_add_library('datatables', 'datatables');
     drupal_add_js(array('datatables' => array('#'. $attributes['id'] => $datatable_options)), 'setting');
+    drupal_add_library('datatables', 'datatables');
     unset($attributes['datatable_options']);
   }
-  
-  return theme('table', $header, $rows, $attributes, $caption);
+
+  return theme('table', $variables);
 }
 
 /**
