Index: filefield.module =================================================================== --- filefield.module (revision 405) +++ filefield.module (working copy) @@ -600,13 +600,28 @@ // Update the cached form with the new element at the right place in the form. if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type_name, $field_name))) { + $tree = _fieldgroup_get_tree($type_name); + $parents = array(0 => $group_name); + while ($group_name = $tree[$group_name]['parents'][0]) { + $parents[] = $group_name; + } + $parents = array_reverse($parents); + + $element = $form; + foreach ($parents as $parent) { + $element = $element[$parent]; + } + if (isset($form['#multigroups']) && isset($form['#multigroups'][$group_name][$field_name])) { - $form_element = $form[$group_name][$delta][$field_name]; + $form_element = $element[$delta][$field_name]; } else { - $form_element = $form[$group_name][$field_name][$delta]; + $form_element = $element[$field_name][$delta]; } } + else { + $form_element = $form[$field_name][$delta]; + } if (!isset($form_element)) { $form_element = $form[$field_name][$delta];