diff --git a/multistep.module b/multistep.module
index cdd72f2..2b56615 100644
--- a/multistep.module
+++ b/multistep.module
@@ -339,6 +339,7 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
     unset($form['#redirect']);
   }*/
   $step = multistep_get_step($entity);
+  $group_children = _multistep_gather_fieldgroup_children($form, $step);
   $form['#multistep'] = array(
     'previous' => multistep_get_previous($entity, $step),
     'current' => $step,
@@ -352,6 +353,7 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
       '#submit' => array('node_form_submit', 'multistep_submit'),
       '#weight' => -999,
       '#access' => variable_get('multistep_button_prev', TRUE),
+      '#limit_validation_errors' => $group_children,
     );
   }
   $form['actions']['save'] = array(
@@ -360,6 +362,7 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
     '#submit' => array('node_form_submit', 'multistep_submit'),
     '#weight' => 0,
     '#access' => variable_get('multistep_button_save', TRUE),
+    '#limit_validation_errors' => $group_children,
   );
   if ($step != multistep_get_last($entity)) {
     $form['actions']['next'] = array(
@@ -367,6 +370,7 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
       '#value' => variable_get('multistep_button_next', t('Next >')),
       '#submit' => array('node_form_submit', 'multistep_submit'),
       '#weight' => 999,
+      '#limit_validation_errors' => $group_children,
     );
   }
   else {
@@ -375,6 +379,7 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
       '#value' => variable_get('multistep_button_done', t('Done')),
       '#submit' => array('node_form_submit', 'multistep_submit'),
       '#weight' => 999,
+      '#limit_validation_errors' => $group_children,
     );
   }
   $form['actions']['submit']['#access'] = FALSE;
@@ -385,6 +390,20 @@ function multistep_field_attach_form($entity_type, $entity, &$form, &$form_state
   }*/
 }
 
+function _multistep_gather_fieldgroup_children($form, $step) {
+  $children = $form['#groups'][$step]->children;
+  foreach ($children as $child) {
+    if (in_array($child, array_keys($form['#groups']))) {
+      $children = array_merge($children, $form['#groups'][$child]->children);
+    }
+  }
+  return array_map('_multistep_array_wrap', $children);
+}
+
+function _multistep_array_wrap($item) {
+  return array($item);
+}
+
 /**
  * Implements hook_node_validate().
  * Set proper revisioning and publishing.
