$OpenBSD: patch-parse_c,v 1.2 2011/07/08 20:38:00 naddy Exp $
--- parse.c.orig	Mon Sep 17 08:48:30 2001
+++ parse.c	Thu Jul  7 08:59:48 2011
@@ -355,14 +355,17 @@ read_file(fp, filename, page, line, preamble)
 
 		case CTL_TAB:
 		    {
-			int i = root->cti_value - 1;
-			if (i < 0) {
-				fprintf(stderr, "%s:%d: "
-					"invalid tab index %d\n",
-					filename, lineno, root->cti_value);
-				exit(-1);
-			}
-			if (i >= MAXTAB) {	/*XXX*/
+		    	int i;
+
+		    	if (root->ct_type == CTL_INT) {
+				i = root->cti_value - 1;
+				if (i < 0) {
+					fprintf(stderr, "%s:%d: "
+						"invalid tab index %d\n",
+						filename, lineno, root->cti_value);
+					exit(-1);
+				}
+			} else {
 				/* must be a string */
 				/* find a free entry */
 				for (i = MAXTAB ; i < MAXTAB + MAXSTYLE ; i++) {
