- struct file_list *dirlist;
- int j, dlen, zap_dir, ok;
-@@ -127,6 +133,9 @@ static int delete_item(char *fname, int
- if (!S_ISDIR(mode)) {
- if (max_delete && ++deletion_count > max_delete)
- return 0;
-+#ifdef SUPPORT_FLAGS
-+ make_mutable(fname, mode, fileflags);
-+#endif
- if (make_backups && (backup_dir || !is_backup_file(fname)))
- ok = make_backup(fname);
- else
-@@ -151,10 +160,17 @@ static int delete_item(char *fname, int
- ok = 0;
- errno = ENOTEMPTY;
- } else if (make_backups && !backup_dir && !is_backup_file(fname)
-- && !(flags & DEL_FORCE_RECURSE))
-+ && !(flags & DEL_FORCE_RECURSE)) {
-+#ifdef SUPPORT_FLAGS
-+ make_mutable(fname, mode, fileflags);
-+#endif
- ok = make_backup(fname);
-- else
-+ } else {
+ enum delret ret;
+ char *what;
+ int ok;
+
+ if (verbose > 2) {
+- rprintf(FINFO, "delete_item(%s) mode=%o flags=%d\n",
+- fname, mode, flags);
++ rprintf(FINFO, "delete_item(%s) mode=%o fileflags=%o flags=%d\n",
++ fname, mode, fileflags, flags);
+ }
+