diff --git a/filefield_field.inc b/filefield_field.inc
index 2f8e607..1e18142 100644
--- a/filefield_field.inc
+++ b/filefield_field.inc
@@ -171,6 +171,10 @@ function filefield_field_update($node, $field, &$items, $teaser, $page) {
   // for deleting replaced files.
   $curfids = array();
   foreach ($items as $delta => $item) {
+    if (empty($item['fid'])) {
+      $items[$delta] = NULL;
+      continue;
+    }
     $items[$delta] = field_file_save($node, $item);
     // Remove items from the array if they have been deleted.
     if (empty($items[$delta]) || empty($items[$delta]['fid'])) {
