diff --git a/src/lextest/scan.l b/src/lextest/scan.l
index 6f801376a335f9ea8fc2cdfde37abfe6c4921eed..5a20a5fa5f048de1b630f21fc1ff80bac37de869 100644
--- a/src/lextest/scan.l
+++ b/src/lextest/scan.l
@@ -1,10 +1,11 @@
 /*
 	This should work, but non-patched flex 2.5.3 fails because input()
-	doesn't return EOF
+	doesn't return EOF or '\0'
 	Bruce Momjian <root@candle.pha.pa.us>
 */
 %%
 .		{
-				while (input() != EOF)
+			int ch;
+			while ((ch = input()) != EOF && ch != '\0')
 				;
 		}