Index: filefield.module
===================================================================
--- filefield.module	(revision 40929)
+++ filefield.module	(working copy)
@@ -1087,6 +1087,7 @@
  *   Optional. The CCK field array or field name as a string.
  */
 function filefield_delete_file_references($file, $field = NULL) {
+  global $user;
   $fields = filefield_get_field_list(NULL, $field);
   $file = (object) $file;
 
@@ -1105,6 +1106,7 @@
       }
 
       $node = node_load($nid, $vid);
+      $current = node_load($nid);
       foreach ($fields as $field_name => $field) {
         if (isset($node->$field_name)) {
           foreach ($node->$field_name as $delta => $item) {
@@ -1119,7 +1121,12 @@
       // Save the node after removing the file references. This flag prevents
       // FileField from attempting to delete the file again.
       $node->skip_filefield_delete = TRUE;
-      node_save($node);
+      if ($current->vid == $node->vid) {
+        node_save($node);
+      }
+      else {
+        _node_save_revision($node, $user->uid, array('nid', 'vid'));
+      }
     }
   }
 }
