--- filefield.module	2007-04-24 16:00:41.737067432 +1000
+++ filefield.module	2007-04-24 16:00:32.531466896 +1000
@@ -329,7 +329,18 @@ function filefield_widget($op, $node, $f
 
     case 'validate':
       if ($field['required']) {
-        if (!count($node_field)) {
+	// Check for case that all files have been removed
+	if(!empty($node_field)) {
+	  $numNotRemoved = 0;
+	  foreach($node_field as $field) {
+	    if(!$field['remove']) {
+	      $numNotRemoved++;
+	      break;
+	    }
+	  }
+	}
+
+        if (!count($node_field) || $numNotRemoved == 0) {
           form_set_error($fieldname, $field['widget']['label'] .' is required.');
         }
       }
