diff --git a/include/proto/pattern.h b/include/proto/pattern.h
index e6ceba8..22da6d5 100644
--- a/include/proto/pattern.h
+++ b/include/proto/pattern.h
@@ -183,7 +183,7 @@
 struct pat_ref *pat_ref_newid(int unique_id, const char *display, unsigned int flags);
 struct pat_ref_elt *pat_ref_find_elt(struct pat_ref *ref, const char *key);
 int pat_ref_append(struct pat_ref *ref, char *pattern, char *sample, int line);
-int pat_ref_add(struct pat_ref *ref, const char *pattern, const char *sample, char **err);
+int pat_ref_add(struct pat_ref *ref, const char *pattern, const char *sample, int patflags, char **err);
 int pat_ref_set(struct pat_ref *ref, const char *pattern, const char *sample, char **err);
 int pat_ref_set_by_id(struct pat_ref *ref, struct pat_ref_elt *refelt, const char *value, char **err);
 int pat_ref_delete(struct pat_ref *ref, const char *key);
diff --git a/src/acl.c b/src/acl.c
index 29b158f..93cf31c 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -659,7 +659,7 @@
 		/* Add sample to the reference, and try to compile it fior each pattern
 		 * using this value.
 		 */
-		if (!pat_ref_add(ref, arg, NULL, err))
+		if (!pat_ref_add(ref, arg, NULL, patflags, err))
 			goto out_free_expr;
 		args++;
 	}
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 5f28e1c..7cf4d84 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -2055,9 +2055,9 @@
 			/* Add value. */
 			err = NULL;
 			if (appctx->ctx.map.display_flags == PAT_REF_MAP)
-				ret = pat_ref_add(appctx->ctx.map.ref, args[3], args[4], &err);
+				ret = pat_ref_add(appctx->ctx.map.ref, args[3], args[4], 0, &err);
 			else
-				ret = pat_ref_add(appctx->ctx.map.ref, args[3], NULL, &err);
+				ret = pat_ref_add(appctx->ctx.map.ref, args[3], NULL, 0, &err);
 			if (!ret) {
 				if (err)
 					memprintf(&err, "%s.\n", err);
diff --git a/src/pattern.c b/src/pattern.c
index 5ebb5ce..e741b20 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -1697,7 +1697,7 @@
  */
 int pat_ref_add(struct pat_ref *ref,
                 const char *pattern, const char *sample,
-                char **err)
+                int patflags, char **err)
 {
 	struct pat_ref_elt *elt;
 	struct pattern_expr *expr;
@@ -1732,7 +1732,7 @@
 	LIST_ADDQ(&ref->head, &elt->list);
 
 	list_for_each_entry(expr, &ref->pat, list) {
-		if (!pat_ref_push(elt, expr, 0, err)) {
+		if (!pat_ref_push(elt, expr, patflags, err)) {
 			/* If the insertion fails, try to delete all the added entries. */
 			pat_ref_delete_by_id(ref, elt);
 			return 0;
diff --git a/src/proto_http.c b/src/proto_http.c
index 90b73da..b7f6edf 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3260,7 +3260,7 @@
 			/* perform update */
 			/* add entry only if it does not already exist */
 			if (pat_ref_find_elt(ref, key) == NULL)
-				pat_ref_add(ref, key, NULL, NULL);
+				pat_ref_add(ref, key, NULL, 0, NULL);
 
 			break;
 			}
@@ -3295,7 +3295,7 @@
 				pat_ref_set(ref, key, value, NULL);
 			else
 				/* insert a new entry */
-				pat_ref_add(ref, key, value, NULL);
+				pat_ref_add(ref, key, value, 0, NULL);
 
 			break;
 			}
@@ -3441,7 +3441,7 @@
 			/* perform update */
 			/* check if the entry already exists */
 			if (pat_ref_find_elt(ref, key) == NULL)
-				pat_ref_add(ref, key, NULL, NULL);
+				pat_ref_add(ref, key, NULL, 0, NULL);
 
 			break;
 			}
@@ -3476,7 +3476,7 @@
 				pat_ref_set(ref, key, value, NULL);
 			else
 				/* insert a new entry */
-				pat_ref_add(ref, key, value, NULL);
+				pat_ref_add(ref, key, value, 0, NULL);
 
 			break;
 			}
