--- /dev/null
+--- rsync-3.0.7/options.c 2011-01-25 22:48:48.321864668 +0200
++++ rsync-3.0.7.vanished/options.c 2011-01-25 22:45:00.289582095 +0200
+@@ -121,6 +121,7 @@
+ int checksum_seed = 0;
+ int inplace = 0;
+ int delay_updates = 0;
++int ignore_vanished = 0;
+ long block_size = 0; /* "long" because popt can't set an int32. */
+ char *skip_compress = NULL;
+ item_list dparam_list = EMPTY_ITEM_LIST;
+@@ -574,6 +575,7 @@
+ {"delete-delay", 0, POPT_ARG_VAL, &delete_during, 2, 0, 0 },
+ {"delete-after", 0, POPT_ARG_NONE, &delete_after, 0, 0, 0 },
+ {"delete-excluded", 0, POPT_ARG_NONE, &delete_excluded, 0, 0, 0 },
++ {"ignore-vanished", 0, POPT_ARG_NONE, &ignore_vanished, 0, 0, 0 },
+ {"remove-sent-files",0, POPT_ARG_VAL, &remove_source_files, 2, 0, 0 }, /* deprecated */
+ {"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 },
+ {"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 },
+--- rsync-3.0.7/sender.c 2009-12-13 03:23:03.000000000 +0200
++++ rsync-3.0.7.vanished/sender.c 2011-01-25 22:48:26.834861230 +0200
+@@ -42,6 +42,7 @@
+ extern int inplace;
+ extern int batch_fd;
+ extern int write_batch;
++extern int ignore_vanished;
+ extern struct stats stats;
+ extern struct file_list *cur_flist, *first_flist, *dir_flist;
+
+@@ -282,12 +283,14 @@
+ fd = do_open(fname, O_RDONLY, 0);
+ if (fd == -1) {
+ if (errno == ENOENT) {
+- enum logcode c = am_daemon
+- && protocol_version < 28 ? FERROR
++ if (!ignore_vanished) {
++ enum logcode c = am_daemon
++ && protocol_version < 28 ? FERROR
+ : FWARNING;
+- io_error |= IOERR_VANISHED;
+- rprintf(c, "file has vanished: %s\n",
+- full_fname(fname));
++ io_error |= IOERR_VANISHED;
++ rprintf(c, "file has vanished: %s\n",
++ full_fname(fname));
++ }
+ } else {
+ io_error |= IOERR_GENERAL;
+ rsyserr(FERROR_XFER, errno,