diff --git a/include/proto/pattern.h b/include/proto/pattern.h
index 9c93db9..5b99296 100644
--- a/include/proto/pattern.h
+++ b/include/proto/pattern.h
@@ -209,7 +209,7 @@
 void pattern_init_expr(struct pattern_expr *expr);
 struct pattern_expr *pattern_lookup_expr(struct pattern_head *head, struct pat_ref *ref);
 struct pattern_expr *pattern_new_expr(struct pattern_head *head, struct pat_ref *ref,
-                                      char **err, int *reuse);
+                                      int patflags, char **err, int *reuse);
 struct sample_data **pattern_find_smp(struct pattern_expr *expr, struct pat_ref_elt *elt);
 int pattern_delete(struct pattern_expr *expr, struct pat_ref_elt *ref);
 
diff --git a/src/acl.c b/src/acl.c
index 9b67a61..8417c1b 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -536,13 +536,10 @@
 	}
 
 	/* Create new pattern expression associated to this reference. */
-	pattern_expr = pattern_new_expr(&expr->pat, ref, err, NULL);
+	pattern_expr = pattern_new_expr(&expr->pat, ref, patflags, err, NULL);
 	if (!pattern_expr)
 		goto out_free_expr;
 
-	/* Copy the pattern matching and indexing flags. */
-	pattern_expr->mflags = patflags;
-
 	/* now parse all patterns */
 	while (**args) {
 		arg = *args;
diff --git a/src/pattern.c b/src/pattern.c
index 2059309..a8b56ca 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -2065,7 +2065,7 @@
  * flag <reuse> is set.
  */
 struct pattern_expr *pattern_new_expr(struct pattern_head *head, struct pat_ref *ref,
-                                      char **err, int *reuse)
+                                      int patflags, char **err, int *reuse)
 {
 	struct pattern_expr *expr;
 	struct pattern_expr_list *list;
@@ -2088,7 +2088,8 @@
 		list_for_each_entry(expr, &ref->pat, list)
 			if (expr->pat_head->index     == head->index &&
 			    expr->pat_head->parse     == head->parse &&
-			    expr->pat_head->parse_smp == head->parse_smp)
+			    expr->pat_head->parse_smp == head->parse_smp &&
+			    expr->mflags == patflags)
 				break;
 		if (&expr->list == &ref->pat)
 			expr = NULL;
@@ -2109,6 +2110,9 @@
 		/* Initialize this new expr. */
 		pattern_init_expr(expr);
 
+		/* Copy the pattern matching and indexing flags. */
+		expr->mflags = patflags;
+
 		/* This new pattern expression reference one of his heads. */
 		expr->pat_head = head;
 
@@ -2377,10 +2381,9 @@
 	 */
 	expr = pattern_lookup_expr(head, ref);
 	if (!expr || (expr->mflags != patflags)) {
-		expr = pattern_new_expr(head, ref, err, &reuse);
+		expr = pattern_new_expr(head, ref, patflags, err, &reuse);
 		if (!expr)
 			return 0;
-		expr->mflags = patflags;
 	}
 
 	/* The returned expression may be not empty, because the function
