diff --git a/src/pattern.c b/src/pattern.c
index aef2a00..3f25607 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -45,7 +45,7 @@
 	[PAT_MATCH_INT]   = pat_parse_int,
 	[PAT_MATCH_IP]    = pat_parse_ip,
 	[PAT_MATCH_BIN]   = pat_parse_bin,
-	[PAT_MATCH_LEN]   = pat_parse_int,
+	[PAT_MATCH_LEN]   = pat_parse_len,
 	[PAT_MATCH_STR]   = pat_parse_str,
 	[PAT_MATCH_BEG]   = pat_parse_str,
 	[PAT_MATCH_SUB]   = pat_parse_str,
@@ -407,6 +407,7 @@
 
 	len  = strlen(*text);
 	pattern->type = SMP_T_CSTR;
+	pattern->expect_type = SMP_T_CSTR;
 
 	if (pattern->flags & PAT_F_TREE_OK) {
 		/* we're allowed to put the data in a tree whose root is pointed
@@ -441,6 +442,7 @@
 int pat_parse_bin(const char **text, struct pattern *pattern, struct sample_storage *smp, int *opaque, char **err)
 {
 	pattern->type = SMP_T_CBIN;
+	pattern->expect_type = SMP_T_CBIN;
 	pattern->smp = smp;
 
 	return parse_binary(*text, &pattern->ptr.str, &pattern->len, err);
@@ -499,6 +501,7 @@
 	pattern->ptr.reg = preg;
 	pattern->freeptrbuf = &pat_free_reg;
 	pattern->smp = smp;
+	pattern->expect_type = SMP_T_CSTR;
 	return 1;
 }
 
@@ -523,6 +526,7 @@
 	const char *ptr = *text;
 
 	pattern->type = SMP_T_UINT;
+	pattern->expect_type = SMP_T_UINT;
 	pattern->smp = smp;
 	while (!isdigit((unsigned char)*ptr)) {
 		switch (get_std_op(ptr)) {
@@ -588,6 +592,15 @@
 	return skip + 1;
 }
 
+int pat_parse_len(const char **text, struct pattern *pattern, struct sample_storage *smp, int *opaque, char **err)
+{
+	int ret;
+
+	ret = pat_parse_int(text, pattern, smp, opaque, err);
+	pattern->expect_type = SMP_T_CSTR;
+	return ret;
+}
+
 /* Parse a range of positive 2-component versions delimited by either ':' or
  * '-'. The version consists in a major and a minor, both of which must be
  * smaller than 65536, because internally they will be represented as a 32-bit
@@ -668,6 +681,7 @@
 	}
 
 	pattern->smp = smp;
+	pattern->expect_type = SMP_T_CSTR;
 
 	if (!last)
 		pattern->val.range.min = i;
@@ -705,6 +719,7 @@
 	if (pattern->flags & PAT_F_TREE_OK)
 		tree = pattern->val.tree;
 
+	pattern->expect_type = SMP_T_ADDR;
 	if (str2net(*text, &pattern->val.ipv4.addr, &pattern->val.ipv4.mask)) {
 		unsigned int mask = ntohl(pattern->val.ipv4.mask.s_addr);
 		struct pat_idx_elt *node;
diff --git a/src/proto_http.c b/src/proto_http.c
index 900f747..41561c5 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -8746,12 +8746,15 @@
 	pattern->val.i = meth;
 	if (meth == HTTP_METH_OTHER) {
 		pattern->ptr.str = strdup(*text);
+		pattern->expect_type = SMP_T_CSTR;
 		if (!pattern->ptr.str) {
 			memprintf(err, "out of memory while loading pattern");
 			return 0;
 		}
 		pattern->len = len;
 	}
+	else
+		pattern->expect_type = SMP_T_UINT;
 	return 1;
 }
 
