diff --git a/src/modules/Regexp/pike_regexp.c b/src/modules/Regexp/pike_regexp.c
index 8c3d21f6ed32e6bfddb0d13d3334ea23b60b93f6..05ae9ca62142b4482227cd2be90f475388633bed 100644
--- a/src/modules/Regexp/pike_regexp.c
+++ b/src/modules/Regexp/pike_regexp.c
@@ -1,5 +1,5 @@
 /* 
- * $Id: pike_regexp.c,v 1.15 2000/08/11 13:04:22 grubba Exp $
+ * $Id: pike_regexp.c,v 1.16 2000/09/02 23:52:23 marcus Exp $
  *
  * regexp.c - regular expression matching
  *
@@ -984,7 +984,7 @@ char           *prog;
 		register char   nextch;
 		register size_t no;
 		register char  *save;
-		register int    minimum;
+		register size_t minimum;
 
 		/*
 		 * Lookahead to avoid useless match attempts when we know
@@ -995,8 +995,8 @@ char           *prog;
 		    nextch = *OPERAND(nxt);
 		minimum = (OP(scan) == STAR) ? 0 : 1;
 		save = reginput;
-		no = regrepeat(OPERAND(scan)) + (minimum == 0);
-		while (no) {
+		no = regrepeat(OPERAND(scan));
+		while (no >= minimum) {
 		    /* If it could work, try it. */
 		    if (nextch == '\0' || *reginput == nextch)
 			if (regmatch(nxt))