diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 937f5c8267f9f954a46da31a986670abb3a4b0b9..0e4459337f153099fe122d37e4886e70e5125ea0 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -77,9 +77,6 @@ I often see pasted text (from Firefox, to Vim in xterm) appear twice.
 Also, Vim in xterm sometimes loses copy/paste ability (probably after running
 an external command).
 
-Win32: The "4913" file is sometimes not deleted.  Perhaps another program has
-opened it?  Use FILE_FLAG_DELETE_ON_CLOSE? (Craig Barkhouse, 2009 Nov 6)
-
 Jumplist doesn't work properly in Insert mode? (Jean Johner, 2010 Mar 20)
 
 Problem with transparent cmdline.  Also: Terminal title is wrong with
diff --git a/src/fileio.c b/src/fileio.c
index 2881cbc88bcdd0ebf0e9b23f2befe61ff362f6a6..368fd7adfe906582ba01b2ef9cc611cc918d871b 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3744,6 +3744,22 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
 		     * can't delete an open file. */
 		    close(fd);
 		    mch_remove(IObuff);
+# ifdef MSWIN
+		    /* MS-Windows may trigger a virus scanner to open the
+		     * file, we can't delete it then.  Keep trying for half a
+		     * second. */
+		    {
+			int try;
+
+			for (try = 0; try < 10; ++try)
+			{
+			    if (mch_lstat((char *)IObuff, &st) < 0)
+				break;
+			    ui_delay(50L, TRUE);  /* wait 50 msec */
+			    mch_remove(IObuff);
+			}
+		    }
+# endif
 		}
 	    }
 	}