diff --git a/src/pattern.c b/src/pattern.c
index c2de92d..0c568ef 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -316,7 +316,8 @@
 	expr->fetch = fetch;
 
 	if (end != endw) {
-		char *err_msg;
+		char *err_msg = NULL;
+		int err_arg;
 
 		if (!fetch->arg_mask) {
 			p = my_strndup(str[*idx], endw - str[*idx]);
@@ -327,12 +328,13 @@
 			goto out_error;
 		}
 
-		if (make_arg_list(endw + 1, end - endw - 2, fetch->arg_mask, &expr->arg_p, NULL, NULL, NULL) < 0) {
+		if (make_arg_list(endw + 1, end - endw - 2, fetch->arg_mask, &expr->arg_p, &err_msg, NULL, &err_arg) < 0) {
 			p = my_strndup(str[*idx], endw - str[*idx]);
 			if (p) {
-				snprintf(err, err_size, "invalid args in fetch method '%s'.", p);
+				snprintf(err, err_size, "invalid arg %d in fetch method '%s' : %s.", err_arg+1, p, err_msg);
 				free(p);
 			}
+			free(err_msg);
 			goto out_error;
 		}
 
@@ -405,7 +407,8 @@
 		conv_expr->conv = conv;
 
 		if (end != endw) {
-			char *err_msg;
+			char *err_msg = NULL;
+			int err_arg;
 
 			if (!conv->arg_mask) {
 				p = my_strndup(str[*idx], endw - str[*idx]);
@@ -417,12 +420,13 @@
 				goto out_error;
 			}
 
-			if (make_arg_list(endw + 1, end - endw - 2, conv->arg_mask, &conv_expr->arg_p, NULL, NULL, NULL) < 0) {
+			if (make_arg_list(endw + 1, end - endw - 2, conv->arg_mask, &conv_expr->arg_p, &err_msg, NULL, &err_arg) < 0) {
 				p = my_strndup(str[*idx], endw - str[*idx]);
 				if (p) {
-					snprintf(err, err_size, "invalid args in conv method '%s'.", p);
+					snprintf(err, err_size, "invalid arg %d in conv method '%s' : %s.", err_arg+1, p, err_msg);
 					free(p);
 				}
+				free(err_msg);
 				goto out_error;
 			}
 
