*** generic/regexec.c~	Wed Jan 10 10:31:01 2007
--- generic/regexec.c	Sat Jan 30 00:47:40 2010
***************
*** 893,908 ****
  	/*
  	 * Try this midpoint on for size.
  	 */
! 
! 	er = cdissect(v, t->left, begin, mid);
! 	if ((er == REG_OKAY) && (longest(v, d2, mid, end, NULL) == end)
! 		&& (er = cdissect(v, t->right, mid, end)) == REG_OKAY) {
! 	    break;		/* NOTE BREAK OUT */
! 	}
! 	if ((er != REG_OKAY) && (er != REG_NOMATCH)) {
! 	    freedfa(d);
! 	    freedfa(d2);
! 	    return er;
  	}
  
  	/*
--- 893,909 ----
  	/*
  	 * Try this midpoint on for size.
  	 */
! 	if (longest(v, d2, mid, end, NULL) == end) {
! 	    er = cdissect(v, t->left, begin, mid);
! 	    if ((er == REG_OKAY) &&
! 		(er = cdissect(v, t->right, mid, end)) == REG_OKAY) {
! 		break;		/* NOTE BREAK OUT */
! 	    }
! 	    if ((er != REG_OKAY) && (er != REG_NOMATCH)) {
! 		freedfa(d);
! 		freedfa(d2);
! 		return er;
! 	    }
  	}
  
  	/*
***************
*** 1010,1025 ****
  	/*
  	 * Try this midpoint on for size.
  	 */
! 
! 	er = cdissect(v, t->left, begin, mid);
! 	if ((er == REG_OKAY) && (longest(v, d2, mid, end, NULL) == end)
! 		&& (er = cdissect(v, t->right, mid, end)) == REG_OKAY) {
! 	    break;		/* NOTE BREAK OUT */
! 	}
! 	if (er != REG_OKAY && er != REG_NOMATCH) {
! 	    freedfa(d);
! 	    freedfa(d2);
! 	    return er;
  	}
  
  	/*
--- 1011,1027 ----
  	/*
  	 * Try this midpoint on for size.
  	 */
! 	if (longest(v, d2, mid, end, NULL) == end) {
! 	    er = cdissect(v, t->left, begin, mid);
! 	    if ((er == REG_OKAY) &&
! 		(er = cdissect(v, t->right, mid, end)) == REG_OKAY) {
! 		break;		/* NOTE BREAK OUT */
! 	    }
! 	    if (er != REG_OKAY && er != REG_NOMATCH) {
! 		freedfa(d);
! 		freedfa(d2);
! 		return er;
! 	    }
  	}
  
  	/*
