? tabs-with-multigroup.patch
Index: drupal-tabs.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/tabs/drupal-tabs.css,v
retrieving revision 1.6
diff -u -p -r1.6 drupal-tabs.css
--- drupal-tabs.css	25 Aug 2009 18:45:11 -0000	1.6
+++ drupal-tabs.css	28 Sep 2009 18:50:33 -0000
@@ -32,3 +32,12 @@ span.clear {
   top: -15000px;
   visibility: hidden; 
 }
+.tabs-multigroup fieldset {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  background: inherit;
+}
+.tabs-multigroup fieldset legend {
+  display: none;
+}
\ No newline at end of file
Index: tabs.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/tabs/tabs.module,v
retrieving revision 1.22
diff -u -p -r1.22 tabs.module
--- tabs.module	26 Sep 2009 19:37:03 -0000	1.22
+++ tabs.module	28 Sep 2009 18:50:33 -0000
@@ -64,6 +64,15 @@ function tabs_pre_render_tabset($element
       if (!isset($element[$key]['#content'])) {
         $element[$key]['#content'] = '';
       }
+      // We need to move the multigroup DIV inside the tabs DIV, otherwise
+      // multigroups AHAH won't work.
+      if ($element[$key]['#theme'] == 'content_multigroup_node_form') {
+        if (isset($element[$key]['#prefix']) && isset($element[$key]['#suffix'])) {
+          $element[$key]['#multigroup_prefix'] = $element[$key]['#prefix'];
+          $element[$key]['#multigroup_suffix'] = $element[$key]['#suffix'];
+          unset($element[$key]['#prefix'], $element[$key]['#suffix']);
+        }
+      }
       $is_ajax = isset($element[$key]['#ajax_url']) && $element[$key]['#ajax_url'];
       // Unset any empty tabs.
       $content = trim($element[$key]['#content']);
Index: tabs.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/tabs/tabs.theme.inc,v
retrieving revision 1.6
diff -u -p -r1.6 tabs.theme.inc
--- tabs.theme.inc	26 Sep 2009 17:58:35 -0000	1.6
+++ tabs.theme.inc	28 Sep 2009 18:50:33 -0000
@@ -43,9 +43,18 @@ function theme_tabpage($element) {
   $output = '';
   // Ensure the tab has content before rendering it.
   if (!empty($element['#ajax_url']) || !empty($element['#content']) || !empty($element['#children'])) {
+    if ($element['#theme'] == 'content_multigroup_node_form') {
+      $element['#tabset_name'] .= ' tabs-multigroup';
+    }
     $output .= '<div id="' . $element['#tab_name'] . '" class="tabs-' . $element['#tabset_name'] . '">';
+    if (isset($element['#multigroup_prefix'])) {
+      $output .= $element['#multigroup_prefix'];
+    }
     $output .= '<h2 class="drupal-tabs-title js-hide">'. $element['#title'] .'</h2>';
     $output .= $element['#content'] . (!empty($element['#children']) ? $element['#children'] : '');
+    if (isset($element['#multigroup_suffix'])) {
+      $output .= $element['#multigroup_suffix'];
+    }
     $output .='</div>';
   }
   return $output;
