Index: filefield_field.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_field.inc,v
retrieving revision 1.38
diff -u -p -r1.38 filefield_field.inc
--- filefield_field.inc	16 Jun 2010 21:54:09 -0000	1.38
+++ filefield_field.inc	25 Jun 2010 00:10:50 -0000
@@ -281,8 +281,14 @@ function filefield_field_sanitize($node,
 
     // TODO: This is only necessary for Views, which doesn't call the "load"
     // $op. It might be preferable to move this to Views integration somehow.
-    if (!empty($items['data']) && is_string($items[$delta]['data'])) {
+    if (!empty($item['data']) && is_string($item['data'])) {
       $item['data'] = unserialize($item['data']);
+      if (is_array($item['data']) && is_array($items[$delta]['data'])) {
+        $items[$delta]['data'] += $item['data'];
+      }
+      elseif (is_array($item['data'])) {
+        $items[$delta]['data'] = $item['data'];
+      }
     }
     // Temporary fix to unserialize data serialized multiple times.
     // See the FileField issue http://drupal.org/node/402860.
Index: filefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_widget.inc,v
retrieving revision 1.97
diff -u -p -r1.97 filefield_widget.inc
--- filefield_widget.inc	16 Jun 2010 21:54:09 -0000	1.97
+++ filefield_widget.inc	25 Jun 2010 00:10:50 -0000
@@ -236,8 +236,9 @@ function filefield_widget_value($element
     }
   }
   // Merge file and item data so it is available to all widgets.
+  $file['data'] = array_merge($item['data'], $file['data']);
   $item = array_merge($item, $file);
-
+  
   return $item;
 }
 
