diff --git a/ChangeLog b/ChangeLog
index 41bb6ff6b8c8642652f83497789d9f6655255fcf..68de2c2ad176aed5055c920f3a89fc154233eeed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,9 @@ General
 	- Fix magic line not getting created when (you guessed it)
 	  uncutting marked text at filebot (Ryan Krebs).
 - files.c:
+  read_file()
+	- If we encounter an error and insert is not set, run new_file().
+	  (bug discovered by Ben Roberts).
   write_file()
 	- Change open call flags, basically copy joe's way of doing it so
 	  a more recent version will actually be included in (un)stable.
diff --git a/files.c b/files.c
index 18f65211e5e7a6b17a63004b76f10f42ddd23642..c39a482adea159679439dce7fa43b01231599160 100644
--- a/files.c
+++ b/files.c
@@ -227,6 +227,8 @@ int open_file(char *filename, int insert, int quiet)
     } else if ((fd = open(filename, O_RDONLY)) == -1) {
 	if (!quiet)
 	    statusbar("%s: %s", strerror(errno), filename);
+	if (!insert)
+	    new_file();
 	return -1;
     } else {			/* File is A-OK */
 	if (S_ISDIR(fileinfo.st_mode) || S_ISCHR(fileinfo.st_mode) ||