diff --git a/src/p_spec.c b/src/p_spec.c
index 0bd530279c720aa36254d0f0a49bb1298e8e05a0..e11235d81b9f67f0c81a291cc22d70f6754fbc25 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -1188,7 +1188,10 @@ INT32 P_FindSpecialLineFromTag(INT16 special, INT16 tag, INT32 start)
 	{
 		start++;
 
-		while (lines[start].special != special)
+		if (start >= (INT32)numlines)
+			return -1;
+
+		while (start < (INT32)numlines && lines[start].special != special)
 			start++;
 
 		if (start >= (INT32)numlines)