diff --git a/src/files.c b/src/files.c
index 11f8eda22e5cb5e33e47a2e5df5e96abcd9f4bcf..37533e791319c63984faa530395cb244bdfab37d 100644
--- a/src/files.c
+++ b/src/files.c
@@ -337,6 +337,8 @@ int do_lockfile(const char *filename)
 	    readtot += readamt;
 	} while (readamt > 0 && readtot < LOCKBUFSIZE);
 
+	close(lockfd);
+
 	if (readtot < 48) {
 	    statusline(MILD, _("Error reading lock file %s: "
 			"Not enough data read"), lockfilename);