Index: filefield.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield.module,v
retrieving revision 1.150
diff -u -r1.150 filefield.module
--- filefield.module	15 Sep 2008 20:58:53 -0000	1.150
+++ filefield.module	12 Dec 2008 09:09:58 -0000
@@ -290,9 +290,7 @@
     $form['#submit'][] = 'filefield_node_form_submit';
   }
 
-
-
-  $default =  array('fid' => 0, 'list' => 0, 'data' => array('description' => ''));
+  $default = filefield_default_value($form,$form_state,$field,$items,$delta);
   // assign defaults..
   if (empty($items[$delta])) $items[$delta] = $default;
 
@@ -352,14 +350,14 @@
       'label' => t('File Upload'),
       'field types' => array('filefield'),
       'multiple values' => CONTENT_HANDLE_CORE,
-      'callbacks' => array('default value' => CONTENT_CALLBACK_CUSTOM),
+      'callbacks' => array('default value' => CONTENT_CALLBACK_DEFAULT),
       'description' => t('A plain file upload widget.'),
     ),
     'filefield_combo' => array(
       'label' => 'Extensible File',
       'field types' => array('filefield'),
       'multiple values' => CONTENT_HANDLE_CORE,
-      'callbacks' => array('default value' => CONTENT_CALLBACK_CUSTOM),
+      'callbacks' => array('default value' => CONTENT_CALLBACK_DEFAULT),
       'description' => t('(Experimental)An extensible file upload widget.'),
     ),
   );
@@ -536,7 +534,7 @@
 }
 
 function _filefield_default_value($field) {
-  return array('fid' => 0, 'list' => $field['list_default'], 'data' => array('description' => ''));
+  return isset($field['widget']['default_value'][0]['fid']) ? $field['widget']['default_value'][0] : $field;
 }
 
 /**
Index: filefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_widget.inc,v
retrieving revision 1.39
diff -u -r1.39 filefield_widget.inc
--- filefield_widget.inc	13 Sep 2008 00:43:27 -0000	1.39
+++ filefield_widget.inc	8 Dec 2008 09:41:20 -0000
@@ -188,11 +188,12 @@
   $delta = $element['#delta'];
 
   $field = content_fields($element['#field_name'], $element['#type_name']);
-
+  $default = _filefield_default_value($field);
+  
   // check remove buttons...
   $remove_name = $element['#field_name'] .'_'. $element['#delta'] .'_remove_btn';
   if (isset($form_state['clicked_button']) && $form_state['clicked_button']['#name'] == $remove_name) {
-    $item = _filefield_default_value($field);
+    $item = $default;
   }
 
   // figute out our fid...
@@ -268,7 +269,7 @@
     '#type_name' => $element['#type_name'],
     '#upload_validators' => $element['#upload_validators'],
   );
-  if ($item['fid'] != 0) {
+  if ($item['fid'] != 0 && $item['fid'] != $default['fid']) {
     $element['remove_btn'] = array(
       '#name' => $element['#field_name'] .'_'. $element['#delta'] .'_remove_btn',
       '#type' => 'submit',

