[BUG] appsession lookup in URL does not work

We've been trying to use the latest release (1.3.14.2) of haproxy  to do
sticky sessions.  Cookie insertion is not an option for us, although we
would much rather use it, as we are trying to work around a problem where
cookies are unreliable.  The appsession functionality only partially worked
(it wouldn't read the session id out of a query string) until we made the
following code change to the get_srv_from_appsession function in
proto_http.c.
diff --git a/src/proto_http.c b/src/proto_http.c
index 0fa40cc..e59ce5a 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -4561,7 +4561,8 @@
 				asession_temp->serverid = NULL;
 
 				/* only do insert, if lookup fails */
-				if (appsession_hash_lookup(&(t->be->htbl_proxy), asession_temp->sessid) == NULL) {
+				asession_temp = appsession_hash_lookup(&(t->be->htbl_proxy), asession_temp->sessid);
+				if (asession_temp == NULL) {
 					if ((asession_temp = pool_alloc2(pool2_appsess)) == NULL) {
 						Alert("Not enough Memory process_srv():asession:calloc().\n");
 						send_log(t->be, LOG_ALERT, "Not enough Memory process_srv():asession:calloc().\n");
@@ -4732,7 +4733,8 @@
 	asession_temp->serverid = NULL;
 	
 	/* only do insert, if lookup fails */
-	if (appsession_hash_lookup(&(t->be->htbl_proxy), asession_temp->sessid) == NULL) {
+	asession_temp = appsession_hash_lookup(&(t->be->htbl_proxy), asession_temp->sessid);
+	if (asession_temp == NULL) {
 		if ((asession_temp = pool_alloc2(pool2_appsess)) == NULL) {
 			/* free previously allocated memory */
 			pool_free2(apools.sessid, local_asession.sessid);