diff --git a/include/types/backend.h b/include/types/backend.h
index ec1f5a9..3271eea 100644
--- a/include/types/backend.h
+++ b/include/types/backend.h
@@ -144,7 +144,7 @@
 	int tot_used;			/* total number of servers used for LB */
 	int wmult;			/* ratio between user weight and effective weight */
 	int wdiv;			/* ratio between effective weight and user weight */
-	char *arg_str;			/* name of the URL parameter used for hashing */
+	char *arg_str;			/* name of the URL parameter/header/cookie used for hashing */
 	int   arg_len;			/* strlen(arg_str), computed only once */
 	struct server *fbck;		/* first backup server when !PR_O_USE_ALL_BK, or NULL */
 	struct lb_map map;		/* LB parameters for map-based algorithms */
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 39e9940..448b5a2 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -323,8 +323,6 @@
 	int  uri_len_limit;			/* character limit for uri balancing algorithm */
 	int  uri_dirs_depth1;			/* directories+1 (slashes) limit for uri balancing algorithm */
 	int  uri_whole;				/* if != 0, calculates the hash from the whole uri. Still honors the len_limit and dirs_depth1 */
-	char *hh_name;				/* name of the header parameter used for hashing */
-	int  hh_len;				/* strlen(hh_name), computed only once */
 	int  hh_match_domain;			/* toggle use of special match function */
 	char *capture_name;			/* beginning of the name of the cookie to capture */
 	int  capture_namelen;			/* length of the cookie name to match */
diff --git a/src/backend.c b/src/backend.c
index 9b6f316..7a1acec 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -401,7 +401,7 @@
 	unsigned int hash = 0;
 	struct http_txn *txn  = s->txn;
 	struct proxy    *px   = s->be;
-	unsigned int     plen = px->hh_len;
+	unsigned int     plen = px->lbprm.arg_len;
 	unsigned long    len;
 	struct hdr_ctx   ctx;
 	const char      *p;
@@ -414,7 +414,7 @@
 	ctx.idx = 0;
 
 	/* if the message is chunked, we skip the chunk size, but use the value as len */
-	http_find_header2(px->hh_name, plen, c_ptr(&s->req, -http_hdr_rewind(&txn->req)), &txn->hdr_idx, &ctx);
+	http_find_header2(px->lbprm.arg_str, plen, c_ptr(&s->req, -http_hdr_rewind(&txn->req)), &txn->hdr_idx, &ctx);
 
 	/* if the header is not found or empty, let's fallback to round robin */
 	if (!ctx.idx || !ctx.vlen)
@@ -424,7 +424,7 @@
 	if (px->lbprm.tot_used == 1)
 		goto hash_done;
 
-	/* Found a the hh_name in the headers.
+	/* Found the param_name in the headers.
 	 * we will compute the hash based on this value ctx.val.
 	 */
 	len = ctx.vlen;
@@ -490,7 +490,7 @@
 	rewind = co_data(&s->req);
 	c_rew(&s->req, rewind);
 
-	ret = fetch_rdp_cookie_name(s, &smp, px->hh_name, px->hh_len);
+	ret = fetch_rdp_cookie_name(s, &smp, px->lbprm.arg_str, px->lbprm.arg_len);
 	len = smp.data.u.str.data;
 
 	c_adv(&s->req, rewind);
@@ -502,7 +502,7 @@
 	if (px->lbprm.tot_used == 1)
 		goto hash_done;
 
-	/* Found a the hh_name in the headers.
+	/* Found the param_name in the headers.
 	 * we will compute the hash based on this value ctx.val.
 	 */
 	hash = gen_hash(px, smp.data.u.str.area, len);
@@ -1799,9 +1799,9 @@
 		curproxy->lbprm.algo &= ~BE_LB_ALGO;
 		curproxy->lbprm.algo |= BE_LB_ALGO_HH;
 
-		free(curproxy->hh_name);
-		curproxy->hh_len  = end - beg;
-		curproxy->hh_name = my_strndup(beg, end - beg);
+		free(curproxy->lbprm.arg_str);
+		curproxy->lbprm.arg_len = end - beg;
+		curproxy->lbprm.arg_str = my_strndup(beg, end - beg);
 		curproxy->hh_match_domain = 0;
 
 		if (*args[1]) {
@@ -1827,14 +1827,14 @@
 				return -1;
 			}
 
-			free(curproxy->hh_name);
-			curproxy->hh_name = my_strndup(beg, end - beg);
-			curproxy->hh_len  = end - beg;
+			free(curproxy->lbprm.arg_str);
+			curproxy->lbprm.arg_str = my_strndup(beg, end - beg);
+			curproxy->lbprm.arg_len = end - beg;
 		}
 		else if ( *(args[0] + 10 ) == '\0' ) { /* default cookie name 'mstshash' */
-			free(curproxy->hh_name);
-			curproxy->hh_name = strdup("mstshash");
-			curproxy->hh_len  = strlen(curproxy->hh_name);
+			free(curproxy->lbprm.arg_str);
+			curproxy->lbprm.arg_str = strdup("mstshash");
+			curproxy->lbprm.arg_len = strlen(curproxy->lbprm.arg_str);
 		}
 		else { /* syntax */
 			memprintf(err, "rdp-cookie : missing cookie name.");
diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c
index b737ffa..4a6c73b 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -474,9 +474,6 @@
 			curproxy->uri_len_limit   = defproxy.uri_len_limit;
 			curproxy->uri_dirs_depth1 = defproxy.uri_dirs_depth1;
 
-			if (defproxy.hh_name)
-				curproxy->hh_name = strdup(defproxy.hh_name);
-			curproxy->hh_len  = defproxy.hh_len;
 			curproxy->hh_match_domain  = defproxy.hh_match_domain;
 
 			if (defproxy.conn_src.iface_name)
@@ -622,7 +619,6 @@
 		free(defproxy.dyncookie_key);
 		free(defproxy.cookie_domain);
 		free(defproxy.lbprm.arg_str);
-		free(defproxy.hh_name);
 		free(defproxy.capture_name);
 		free(defproxy.monitor_uri);
 		free(defproxy.defbe.name);
