diff --git a/src/timezone/zic.c b/src/timezone/zic.c
index 8dcc7b337a7..bee94fa08f1 100644
--- a/src/timezone/zic.c
+++ b/src/timezone/zic.c
@@ -1095,6 +1095,7 @@ dolink(char const *target, char const *linkname, bool staysymlink)
 			{
 				char const *e = strerror(errno);
 
+				fclose(fp);
 				fprintf(stderr, _("%s: Can't create %s/%s: %s\n"),
 						progname, directory, linkname, e);
 				exit(EXIT_FAILURE);
