diff --git a/util/RE.c++ b/util/RE.c++
index 77150e8..6a11b1c 100644
--- a/util/RE.c++
+++ b/util/RE.c++
@@ -77,8 +77,13 @@ RE::Find(const char* text, u_int length, u_int off)
 	else {
 	    matches[0].rm_so = off;
 	    matches[0].rm_eo = length;
-	    execResult = regexec(&c_pattern, text, c_pattern.re_nsub+1,
-			    matches, REG_STARTEND);
+		char newtext[length-off+1];
+		strncpy(newtext,&text[off],length-off);
+		newtext[length-off]='\0';
+		execResult = regexec(&c_pattern, newtext, c_pattern.re_nsub+1,
+							matches, 0x0);
+		for (int j=0;j<c_pattern.re_nsub+1;j++)
+			matches[j].rm_so+=off, matches[j].rm_eo+=off;
 	}
     }
     return (execResult == 0);
