--- ./regcomp.c~	Tue Nov 25 06:55:14 1997
+++ ./regcomp.c	Sat Feb 21 06:22:30 1998
@@ -340,7 +340,7 @@ study_chunk(regnode **scanp, I32 *deltap
 		    scan = next;
 		    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
 			pars++;
-		    if (data_fake.flags & SF_HAS_EVAL)
+		    if (data && (data_fake.flags & SF_HAS_EVAL))
 			data->flags |= SF_HAS_EVAL;
 		    if (code == SUSPEND) 
 			break;
@@ -586,7 +586,7 @@ study_chunk(regnode **scanp, I32 *deltap
 			data->longest = &(data->longest_float);
 		    }
 		}
-		if (fl & SF_HAS_EVAL)
+		if (data && (fl & SF_HAS_EVAL))
 		    data->flags |= SF_HAS_EVAL;
 	      optimize_curly_tail:
 #ifdef REGALIGN
@@ -635,7 +635,7 @@ study_chunk(regnode **scanp, I32 *deltap
 	    }
 	    if (data && data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
 		pars++;
-	    if (data_fake.flags & SF_HAS_EVAL)
+	    if (data && (data_fake.flags & SF_HAS_EVAL))
 		data->flags |= SF_HAS_EVAL;
 	} else if (OP(scan) == OPEN) {
 	    pars++;
