diff --git a/include/types/pattern.h b/include/types/pattern.h
index da383ba..e948264 100644
--- a/include/types/pattern.h
+++ b/include/types/pattern.h
@@ -22,9 +22,10 @@
 #ifndef _TYPES_PATTERN_H
 #define _TYPES_PATTERN_H
 
-#include <types/buffers.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
+#include <types/arg.h>
+#include <types/buffers.h>
 
 /* pattern in and out types */
 enum {
@@ -38,34 +39,12 @@
 	PATTERN_TYPES             /* number of types, must always be last */
 };
 
-
-/* pattern arg types */
-enum {
-	PATTERN_ARG_TYPE_IP = 0,      /* ipv4 type */
-	PATTERN_ARG_TYPE_IPV6,        /* ipv6 type */
-	PATTERN_ARG_TYPE_INTEGER,     /* unsigned 32bits integer type */
-	PATTERN_ARG_TYPE_SINTEGER,    /* signed 32bits integer type */
-	PATTERN_ARG_TYPE_STRING       /* string type */
-};
 
 /* pattern fetch direction */
 #define PATTERN_FETCH_REQ	1
 #define PATTERN_FETCH_RTR	2
 
 
-union pattern_arg_data {
-	struct in_addr ip;        /* used for ipv4 type */
-	struct in6_addr ipv6;     /* used for ipv6 type */
-	uint32_t integer;         /* used for unsigned 32bits integer type */
-	int sinteger;             /* used for signed 32bits integer type */
-	struct chunk str;
-};
-
-struct pattern_arg {
-	int type;                    /* type of arg */
-	union pattern_arg_data data; /* data */
-};
-
 /* pattern result data */
 union pattern_data {
 	struct in_addr ip;        /* used for ipv4 type */
@@ -83,11 +62,11 @@
 /* pattern conversion */
 struct pattern_conv {
 	const char *kw;                           /* configuration keyword  */
-	int (*process)(const struct pattern_arg *arg_p,
+	int (*process)(const struct arg *arg_p,
 	               int arg_i,
 	               union pattern_data *data); /* process function */
 	int (*parse_args)(const char *arg_str,
-			  struct pattern_arg **arg_p,
+			  struct arg **arg_p,
 			  int *arg_i);            /* argument parser. Can be NULL. */
 	unsigned int in_type;                     /* input needed pattern type */
 	unsigned int out_type;                    /* output pattern type */
@@ -97,7 +76,7 @@
 struct pattern_conv_expr {
 	struct list list;                         /* member of a pattern expression */
 	struct pattern_conv *conv;                /* pattern conversion */
-	struct pattern_arg *arg_p;                /* pointer on args */
+	struct arg *arg_p;                        /* pointer on args */
 	int arg_i;                                /* number of args */
 };
 
@@ -107,11 +86,11 @@
 	int (*process)(struct proxy *px,
 	               struct session *l4,
 	               void *l7,
-	               int dir, const struct pattern_arg *arg_p,
+	               int dir, const struct arg *arg_p,
 	               int arg_i,
 	               union pattern_data *data); /* fetch processing function */
 	int (*parse_args)(const char *arg_str,
-			  struct pattern_arg **arg_p,
+			  struct arg **arg_p,
 			  int *arg_i);            /* argument parser. Can be NULL. */
 	unsigned long out_type;                   /* output pattern type */
 	int dir;                                  /* usable directions */
@@ -121,7 +100,7 @@
 struct pattern_expr {
 	struct list list;                         /* member of list of pattern, currently not used */
 	struct pattern_fetch *fetch;              /* pattern fetch */
-	struct pattern_arg *arg_p;                /* pointer on args */
+	struct arg *arg_p;                        /* pointer on args */
 	int arg_i;                                /* number of args */
 	struct list conv_exprs;                   /* list of conversion expression to apply */
 };
