diff -rupN content_multigroup_clean//content_multigroup.node_form.inc content_multigroup_hidden//content_multigroup.node_form.inc
--- content_multigroup_clean//content_multigroup.node_form.inc	2009-04-01 04:48:42.000000000 +1100
+++ content_multigroup.node_form.inc	2009-04-17 10:49:12.000000000 +1000
@@ -20,13 +20,11 @@ function _content_multigroup_fieldgroup_
   $group_multiple = (int)$group['settings']['multigroup']['multiple'];
   $content_type = content_types($group['type_name']);
 
-  // Build list of accessible fields in this group.
+  // Build list of fields in this group.
   $group_fields = array();
   foreach ($content_type['fields'] as $field_name => $field) {
     if (isset($group['fields'][$field_name]) && isset($form[$group_name][$field_name])) {
-      if (!isset($form[$group_name][$field_name]['#access']) || $form[$group_name][$field_name]['#access']) {
-        $group_fields[$field_name] = $field;
-      }
+      $group_fields[$field_name] = $field;
     }
   }
 
@@ -229,6 +227,15 @@ function content_multigroup_group_form(&
 
       $form[$group_name][$delta][$field_name] = $field_form[$field_name];
     }
+
+    // Make sure field accessibility is adhered to
+    if ($delta == 0) {
+      $form[$group_name][$delta][$field_name]['#access'] = $form[$group_name][$field_name]['#access'];
+    }
+    else {
+      $form[$group_name][$delta][$field_name]['#access'] = $form[$group_name][$delta - 1][$field_name]['#access'];
+    }
+
     $form[$group_name][$delta][$field_name]['#weight'] = $field['widget']['weight'];
   }
 
@@ -768,8 +775,10 @@ function theme_content_multigroup_node_f
   }
   if ($multiple_columns) {
     foreach ($group_fields as $field_name => $field) {
-      $required = !empty($field['required']) ? '&nbsp;<span class="form-required" title="'. t('This field is required.') .'">*</span>' : '';
-      $header[] = check_plain(t($field['widget']['label'])) . $required;
+      if ($element[0][$field_name]['#access'] !== FALSE) {
+        $required = !empty($field['required']) ? '&nbsp;<span class="form-required" title="'. t('This field is required.') .'">*</span>' : '';
+        $header[] = check_plain(t($field['widget']['label'])) . $required;
+      }
     }
     $table_class .= ' content-multigroup-edit-table-multiple-columns';
   }
@@ -805,7 +814,9 @@ function theme_content_multigroup_node_f
       }
       if ($multiple_columns) {
         foreach ($group_fields as $field_name => $field) {
-          $cells[] = array('data' => isset($element[$key][$field_name]) ? drupal_render($element[$key][$field_name]) : '');
+          if ($element[0][$field_name]['#access'] !== FALSE) {
+            $cells[] = array('data' => isset($element[$key][$field_name]) ? drupal_render($element[$key][$field_name]) : '');
+          }
         }
       }
       else {
