diff -u cck_fieldgroup_tabs_orig/cck_fieldgroup_tabs.info cck_fieldgroup_tabs/cck_fieldgroup_tabs.info
--- cck_fieldgroup_tabs_orig/cck_fieldgroup_tabs.info	2010-01-27 19:03:00.000000000 -0500
+++ cck_fieldgroup_tabs/cck_fieldgroup_tabs.info	2010-02-18 16:35:28.000000000 -0500
@@ -1,6 +1,6 @@
 ; $Id: cck_fieldgroup_tabs.info,v 1.2 2008/04/13 04:40:42 nedjo Exp $
 name = CCK Fieldgroup Tabs
-description = Display CCK fieldgroups in tabs. Enables splitting up content onto tabs in both editing and display.
+description = Display CCK fieldgroups or multigroups in tabs. Enables splitting up content onto tabs in both editing (fieldgroups only) and display.
 dependencies[] = fieldgroup
 dependencies[] = tabs
 package = CCK
diff -u cck_fieldgroup_tabs_orig/cck_fieldgroup_tabs.module cck_fieldgroup_tabs/cck_fieldgroup_tabs.module
--- cck_fieldgroup_tabs_orig/cck_fieldgroup_tabs.module	2010-01-18 02:08:46.000000000 -0500
+++ cck_fieldgroup_tabs/cck_fieldgroup_tabs.module	2010-02-18 16:42:21.000000000 -0500
@@ -74,6 +74,31 @@
     '#description' => t('Text to display above the tabset on content display.'),
     '#default_value' => variable_get('cck_fieldgroup_tabs_description_' . $node_type, ''),
   );
+    if (module_exists('content_multigroup')) {
+      $form['cck_fieldgroup_tabs']['cck_fieldgroup_tabs_individual_multigroup_tabs_enabled'] = array(
+      '#type' => 'radios',
+      '#title' => t('Display multigroup instances in individual tabs'),
+      '#description' => t("Enable this option to give each instance of a multigroup it's own tab."),
+      '#options' => array(t('Disabled'), t('Enabled')),
+      '#default_value' => variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_enabled_'.$node_type, 0),
+      );
+
+      $form['cck_fieldgroup_tabs']['cck_fieldgroup_tabs_individual_multigroup_tabs_skip_single'] = array(
+      '#type' => 'radios',
+      '#title' => t('Do not create multigroup tab if only one tab would be created'),
+      '#description' => t("Skip creating tabs if there is only a single item in the multigroup, and the basics tab isn't enabled."),
+      '#options' => array(t('Disabled'), t('Enabled')),
+      '#default_value' => variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_skip_single_'.$node_type, 0),
+      );
+
+      $form['cck_fieldgroup_tabs']['cck_fieldgroup_tabs_individual_multigroup_tabs_title_field'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Use this field for multigroup tab title'),
+      '#description' => t("If present, the field with this field name will be used as the tab title, and will not be displayed inside the tab."),
+      '#default_value' => variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_title_field_'.$node_type, NULL)
+      );
+    }
+  
   return $form;
 }
 
@@ -162,11 +187,67 @@
           else if ($group['weight'] < $node->content['fieldgroup_tabs']['#weight']) {
             $node->content['fieldgroup_tabs']['#weight'] = $group['weight'];
           }
-          $element = $node->content[$group_name]['group'];
-          $element['#type'] = 'tabpage';
-          $element['#weight'] = $group['weight'];
-          $node->content['fieldgroup_tabs'][$group_name] = $element;
-          unset($node->content[$group_name]);
+          
+          if ($group['group_type'] == 'multigroup' && module_exists('content_multigroup') && variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_enabled_'.$node->type, 0)) {
+            // Special processing if the field is a multigroup
+            $multigroup_title_field = variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_title_field_'.$node->type, NULL);
+            for ($multigroup_count = 0; isset($node->content[$group_name]['group'][$multigroup_count]); $multigroup_count++) {
+              //This loop counts the number of groups in the multigroup.
+            }
+          if ($multigroup_count > 1 || variable_get('cck_fieldgroup_tabs_individual_multigroup_tabs_skip_single_'.$node->type, 0) == false  || variable_get('cck_fieldgroup_tabs_residual_title_'.$node->type, FALSE)) {
+            //Create tabs if we have more than one element in the multigroup, or if we explicitely asked to create it anyway, or if there will be a basics tab.              
+            $return_array = array();
+            for ($i = 0; $i < $multigroup_count; $i++) {
+              foreach ($node->content[$group_name]['group'] as $group_element_key => $group_element) {
+                // Build the form for one tab for each multigroup element.
+                // We basically copy information to create the same structure as
+                // if each multigroup element were part of an individual
+                // fieldgroup
+                if (!is_numeric($group_element_key)) {
+                  // Copy common group information in the structure
+                  $return_array[$i][$group_element_key] = $group_element;
+                }
+                else if ($group_element_key == $i) {
+                  // Assign group elements for the current group index.
+                  $return_array[$i][1] = $group_element;
+                }
+              }
+            }
+            //Copy the form into the original node
+            foreach ($return_array as $element_rank => $individual_multigroup_element) {
+              $element = array();
+              foreach ($node->content[$group_name] as $key => $value) {
+                //Copy non-goup elements
+                if ($key != 'group') {
+                  $element[$key] = $value;
+                }
+              }
+              $element['group'] = $individual_multigroup_element;
+              $element['#type'] = 'tabpage';
+              $element['#weight'] = $group['weight'] + $element_rank;
+              // Title is required for tabs.
+              // Assign the tab title according to the module configuration
+              if (!empty($multigroup_title_field) && !empty($element['group'][1][$multigroup_title_field][1]['#item']['safe'])) {
+                $element['#title'] = check_plain($element['group'][1][$multigroup_title_field][1]['#item']['safe']);
+                unset($element['group'][1][$multigroup_title_field]);
+              }
+              else {
+                // Display the group label and append the rank to distinguish tabs
+                $element['#title'] = t(check_plain($group['label'] . ' ' . $element_rank));
+              }
+              $node->content['fieldgroup_tabs'][$group_name . '_element_' . $element_rank] = $element;
+            }
+            unset($node->content[$group_name]);
+            }
+          }
+          else {
+            // Process a standard fieldgroup
+            $element = $node->content[$group_name]['group'];
+            $element['#type'] = 'tabpage';
+            $element['#weight'] = $group['weight'];
+            $node->content['fieldgroup_tabs'][$group_name] = $element;
+            unset($node->content[$group_name]);
+          }
         }
       }
       if (isset($node->content['fieldgroup_tabs'])) {
