diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index 0cc7ba6c4c9056e6dbdaafdd0bef6d9e0292d267..5abb74f14e5cf289b6b105e2b228ad75947721cf 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -1355,6 +1355,7 @@ parse_include(void)
 			/* if the command was "include_next" we have to disregard the first hit */
 			if (yyin && include_next)
 			{
+				fclose (yyin);
 				yyin = NULL;
 				include_next = false;
 			}