diff --git a/src/files.c b/src/files.c
index 9ddff17247f210071b779c23a477f5599c1560b0..70c17b00de3a30d08c9474689193afa79f06f4fd 100644
--- a/src/files.c
+++ b/src/files.c
@@ -258,6 +258,7 @@ int write_lockfile(const char *lockfilename, const char *origfilename, bool modi
     if (wroteamt < lockdatalen) {
 	statusline(MILD, _("Error writing lock file %s: %s"),
 			lockfilename, ferror(filestream));
+ 	fclose(filestream);
 	goto free_the_data;
     }