-@@ -307,7 +315,7 @@ static void delete_in_dir(struct file_li
- }
- if (flist_find(flist, fp) < 0) {
- f_name(fp, delbuf);
-- delete_item(delbuf, fp->mode, NULL, DEL_RECURSE);
-+ delete_item(delbuf, fp->mode, FILEFLAGS(fp->fileflags), NULL, DEL_RECURSE);
+- past_space = strchr(bp, ' ') + 1;
++ past_space = strchr(strchr(bp, ' ') + 1, ' ') + 1;
+ len = j - read_pos - (past_space - bp) + 1; /* count the '\0' */
+ read_pos = j + 1;
+
+@@ -399,15 +410,15 @@ static int read_delay_line(char *buf)
+
+ static void do_delayed_deletions(char *delbuf)
+ {
+- int mode;
++ int mode, fileflags;
+
+ if (deldelay_fd >= 0) {
+ if (deldelay_cnt && !flush_delete_delay())
+ return;
+ lseek(deldelay_fd, 0, 0);
+ }
+- while ((mode = read_delay_line(delbuf)) >= 0)
+- delete_item(delbuf, mode, NULL, DEL_RECURSE);
++ while ((mode = read_delay_line(delbuf, &fileflags)) >= 0)
++ delete_item(delbuf, mode, fileflags, NULL, DEL_RECURSE);
+ if (deldelay_fd >= 0)
+ close(deldelay_fd);
+ }
+@@ -474,7 +485,7 @@ static void delete_in_dir(char *fbuf, st
+ if (!remember_delete(fp, delbuf))
+ break;
+ } else
+- delete_item(delbuf, fp->mode, NULL, DEL_RECURSE);
++ delete_item(delbuf, fp->mode, FF_PTR(fp), NULL, DEL_RECURSE);