EXECUTIVE SUMMARY: There is an issue with having a FileField or ImageField inside of a cck_multigroup group. The problem is that if you click Upload, the file is actually uploaded but then it gets lost in the system. It is getting lost in content_field_form, where it tries to figure out the values from the passed-in $form_state. If the field is inside a multi-group, that function is not looking at the right array element to find the values. DETAILS: I am seeing this happening in the AJAX callback connected to the Upload button, which calls filefield_js(). filefield_js in turn calls content_field_form (around line 37 in content.node_form.inc) in order to build a form element with the uploaded file's thumbnail shown in it. The file has previously been successfully uploaded during the previous call to form_builder(). So, content_field_form() gets passed in $form_state, and it uses $form_state['values'] as one way to figure out what values to put into the form. The relevant lines from content_field_form(): if (!empty($form_state['values'][$field['field_name']])) { $items = $form_state['values'][$field['field_name']]; However, in this case, it is not looking at the right array element. In my example, I have defined a multi-group called "group_cycling_images", and within that, am attempting to upload an image field "field_main_image". $field['field_name'] has the value "field_main_image". However, the actual values in $form_state['values'] for this field are under $form_state['values']['group_cycling_images'][0]['field_main_image'] not under $form_state['values']['field_main_image'] So we need to patch the function so that for multigroups, it looks in the right place to get the values. I will see what I can do, but I am not sure if it will be simple....