diff --git a/include/proto/pattern.h b/include/proto/pattern.h
index ba428af..a019730 100644
--- a/include/proto/pattern.h
+++ b/include/proto/pattern.h
@@ -40,7 +40,8 @@
  * The function returns 1 if the processing is ok, return 0
  * if the parser fails, with <err> message filled.
  */
-int pattern_register(struct pattern_expr *expr, const char *arg, struct sample_storage *smp, int patflags, char **err);
+int pattern_register(struct pattern_head *head, char *reference, int refflags, const char *arg, struct sample_storage *smp, int patflags, char **err);
+void pattern_finalize_config(void);
 
 /* return the PAT_MATCH_* index for match name "name", or < 0 if not found */
 static inline int pat_find_match_name(const char *name)
@@ -59,7 +60,7 @@
  * function returns the matched pattern. In many cases, this pattern can be a
  * static buffer.
  */
-struct pattern *pattern_exec_match(struct pattern_expr *expr, struct sample *smp, int fill);
+struct pattern *pattern_exec_match(struct pattern_head *head, struct sample *smp, int fill);
 
 /*
  *
@@ -195,11 +196,33 @@
  */
 struct pattern *pat_match_reg(struct sample *smp, struct pattern_expr *expr, int fill);
 
-int pattern_read_from_file(struct pattern_expr *expr, const char *filename, int patflags, char **err);
+/*
+ * pattern_ref manipulation.
+ */
+struct pat_ref *pat_ref_lookup(const char *reference);
+struct pat_ref *pat_ref_new(const char *reference, unsigned int flags);
+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_set(struct pat_ref *ref, const char *pattern, const char *sample);
+int pat_ref_delete(struct pat_ref *ref, const char *key);
+void pat_ref_prune(struct pat_ref *ref);
+int pat_ref_load(struct pat_ref *ref, struct pattern_expr *expr, int patflags, int soe, char **err);
+
+/*
+ * pattern_head manipulation.
+ */
+void pattern_init_head(struct pattern_head *head);
+void pattern_prune(struct pattern_head *head);
+int pattern_read_from_file(struct pattern_head *head, unsigned int refflags, const char *filename, int patflags, char **err);
+
+/*
+ * pattern_expr manipulation.
+ */
 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);
 struct sample_storage **pattern_find_smp(const char *key, struct pattern_expr *expr, char **err);
 int pattern_delete(const char *key, struct pattern_expr *expr, char **err);
-void pattern_prune(struct pattern_expr *expr);
 
 
 #endif
diff --git a/include/types/acl.h b/include/types/acl.h
index 2221761..c0b5ace 100644
--- a/include/types/acl.h
+++ b/include/types/acl.h
@@ -122,7 +122,7 @@
  */
 struct acl_expr {
 	struct sample_expr *smp;      /* the sample expression we depend on */
-	struct pattern_expr pat;      /* the pattern matching expression */
+	struct pattern_head pat;      /* the pattern matching expression */
 	struct list list;             /* chaining */
 	const char *kw;               /* points to the ACL kw's name or fetch's name (must not free) */
 };
diff --git a/include/types/map.h b/include/types/map.h
index 59c1a22..f274e27 100644
--- a/include/types/map.h
+++ b/include/types/map.h
@@ -22,7 +22,8 @@
 #ifndef _TYPES_MAP_H
 #define _TYPES_MAP_H
 
-#include <types/acl.h>
+#include <types/pattern.h>
+#include <types/sample.h>
 
 /* These structs contains a string representation of the map. These struct is
  * sorted by file. Permit to hot-add and hot-remove entries.
@@ -31,33 +32,10 @@
  */
 extern struct list maps;
 
-struct map_reference {
-	struct list list;    /* used for listing */
-	char *reference;     /* contain the unique identifier used as map identifier.
-	                        in many cases this identifier is the filename that contain
-	                        the patterns */
-	struct list entries; /* the list of all the entries of the map. This
-	                        is a list of "struct map_entry" */
-	struct list maps;    /* the list of all maps associated with the file
-	                        name identifier. This is a list of struct map_descriptor */
-};
-
-struct map_entry {
-	struct list list; /* used for listing */
-	int line;         /* The original line into the file. It is used for log reference.
-	                     If the line is '> 0', this entry is from the original load,
-	                     If the line is '< 0', this entry is modify by dynamux process (CLI) */
-	char *key;        /* The string containing the key before conversion
-	                     and indexation */
-	char *value;      /* The string containing the value */
-};
-
-struct sample_storage;
 struct map_descriptor {
 	struct list list;              /* used for listing */
-	struct map_reference *ref;     /* the reference used for unindexed entries */
 	struct sample_conv *conv;      /* original converter descriptor */
-	struct pattern_expr *pat;      /* the pattern matching associated to the map */
+	struct pattern_head pat;       /* the pattern matching associated to the map */
 	int do_free;                   /* set if <pat> is the orignal pat and must be freed */
 	char *default_value;           /* a copy of default value. This copy is
 	                                  useful if the type is str */
diff --git a/include/types/pattern.h b/include/types/pattern.h
index 72022e3..d19bcc1 100644
--- a/include/types/pattern.h
+++ b/include/types/pattern.h
@@ -87,6 +87,30 @@
 	PAT_MATCH_NUM
 };
 
+#define PAT_REF_MAP 0x1 /* Set if the reference is used by at least one map. */
+#define PAT_REF_ACL 0x2 /* Set if the reference is used by at least one acl. */
+
+/* This struct contain a list of reference strings for dunamically
+ * updatable patterns.
+ */
+struct pat_ref {
+	struct list list; /* Used to chain refs. */
+	unsigned int flags; /* flags PAT_REF_*. */
+	char *reference; /* The reference name. */
+	struct list head; /* The head of the list of struct pat_ref_elt. */
+	struct list pat; /* The head of the list of struct pattern_expr. */
+};
+
+/* This is a part of struct pat_ref. Each entry contain one
+ * pattern and one associated value as original string.
+ */
+struct pat_ref_elt {
+	struct list list; /* Used to chain elements. */
+	char *pattern;
+	char *sample;
+	int line;
+};
+
 /* How to store a time range and the valid days in 29 bits */
 struct pat_time {
 	int dow:7;              /* 1 bit per day of week: 0-6 */
@@ -154,6 +178,17 @@
  * are grouped together in order to optimize caching.
  */
 struct pattern_expr {
+	struct list listh; /* Used for chaining pattern_expr in pattern_head. */
+	struct list listr; /* Used for chaining pattern_expr in pat_ref. */
+	struct pat_ref *ref; /* The pattern reference if exists. */
+	struct pattern_head *pat_head; /* Point to the pattern_head that contain manipulation functions. */
+	struct list patterns;         /* list of acl_patterns */
+	struct eb_root pattern_tree;  /* may be used for lookup in large datasets */
+	struct eb_root pattern_tree_2;  /* may be used for different types */
+};
+
+/* This struct contain a list of pattern expr */
+struct pattern_head {
 	int (*parse)(const char *text, struct pattern *pattern, char **err);
 	int (*parse_smp)(const char *text, struct sample_storage *smp);
 	int (*index)(struct pattern_expr *, struct pattern *, char **);
@@ -161,9 +196,8 @@
 	struct sample_storage **(*find_smp)(struct pattern_expr *, struct pattern *);
 	void (*prune)(struct pattern_expr *);
 	struct pattern *(*match)(struct sample *, struct pattern_expr *, int);
-	struct list patterns;         /* list of acl_patterns */
-	struct eb_root pattern_tree;  /* may be used for lookup in large datasets */
-	struct eb_root pattern_tree_2;  /* may be used for different types */
+
+	struct list head;
 };
 
 extern char *pat_match_names[PAT_MATCH_NUM];
@@ -175,4 +209,7 @@
 extern struct pattern *(*pat_match_fcts[PAT_MATCH_NUM])(struct sample *, struct pattern_expr *, int);
 extern int pat_match_types[PAT_MATCH_NUM];
 
+/* This is the root of the list of all pattern_ref avalaibles. */
+extern struct list pattern_reference;
+
 #endif /* _TYPES_PATTERN_H */
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index 16c127d..8049fcc 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -142,9 +142,11 @@
 			void *ptr;              /* multi-purpose pointer for peers */
 		} peers;
 		struct {
-			struct map_reference *ref;
-			struct map_entry *ent;
+			unsigned int display_flags;
+			struct pat_ref *ref;
+			struct pat_ref_elt *elt;
 			struct map_descriptor *desc;
+			struct pattern_expr *expr;
 			struct chunk chunk;
 		} map;
 	} ctx;					/* used by stats I/O handlers to dump the stats */
