--- lexer_v3.c.orig	2006-11-23 09:25:30.000000000 -0500
+++ lexer_v3.c	2006-11-23 09:29:24.000000000 -0500
@@ -2590,6 +2590,14 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
+	if ((yy_n_chars) + number_to_move > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+	    int new_size = (yy_n_chars) * 5 / 4 + 2;
+	    YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *)
+		/* Include room in for 2 EOB chars. */
+		yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
+				 new_size );
+	}
+
 	(yy_n_chars) += number_to_move;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
