diff --git modules/file/file.field.inc modules/file/file.field.inc
index 35696dd..053acfc 100644
--- modules/file/file.field.inc
+++ modules/file/file.field.inc
@@ -750,17 +750,18 @@ function file_field_widget_submit($form, &$form_state) {
   $parents = $element['#field_parents'];
 
   $submitted_values = drupal_array_get_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2));
-  foreach ($submitted_values as $delta => $submitted_value) {
-    if (!$submitted_value['fid']) {
-      unset($submitted_values[$delta]);
+  if (is_array($submitted_values) AND count($submitted_values) > 0) {
+    foreach ($submitted_values as $delta => $submitted_value) {
+      if (!$submitted_value['fid']) {
+        unset($submitted_values[$delta]);
+      }
     }
-  }
+    // Re-index deltas after removing empty items.
+    $submitted_values = array_values($submitted_values);
 
-  // Re-index deltas after removing empty items.
-  $submitted_values = array_values($submitted_values);
-
-  // Update form_state values.
-  drupal_array_set_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2), $submitted_values);
+    // Update form_state values.
+    drupal_array_set_nested_value($form_state['values'], array_slice($button['#array_parents'], 0, -2), $submitted_values);
+  }
 
   // Update items.
   $field_state = field_form_get_state($parents, $field_name, $langcode, $form_state);
