Index: client_side.c
===================================================================
RCS file: /cvsroot/squid/squid/src/client_side.c,v
retrieving revision 1.97
diff -u -r1.97 client_side.c
--- client_side.c	22 May 2006 22:23:49 -0000	1.97
+++ client_side.c	23 May 2006 11:51:10 -0000
@@ -1170,8 +1170,11 @@
     /* If any connection has been pinned to this client, force keep alive */
     if (http->conn->pinned) {
 	request->flags.must_keepalive = 1;
-	request->flags.auth = 1;
-	request->flags.pinned = 1;
+	/* If this specific host/port has been pinned to this client, flag */
+	if(pconnLookup(request->host,request->port,NULL,&request->client_addr,request->client_port)) {
+	    request->flags.auth = 1;
+	    request->flags.pinned = 1;
+	}
     }
     if (httpHeaderHas(req_hdr, HDR_AUTHORIZATION))
 	request->flags.auth = 1;
Index: forward.c
===================================================================
RCS file: /cvsroot/squid/squid/src/forward.c,v
retrieving revision 1.25
diff -u -r1.25 forward.c
--- forward.c	23 May 2006 00:06:56 -0000	1.25
+++ forward.c	23 May 2006 11:51:11 -0000
@@ -501,7 +501,9 @@
 	((fwdState->request->my_port == Config.tproxy_port) || (Config.tproxy_port == 0)))
 	fd = pconnPop(name, port, domain, &fwdState->request->client_addr, 0);
 #endif
-    if (fd == -1 && (fd = pconnPop(name, port, domain, NULL, 0)) >= 0) {
+    if (fd == -1)
+	fd = pconnPop(name, port, domain, NULL, 0);
+    if(fd != -1) {
 	if (fwdCheckRetriable(fwdState)) {
 	    debug(17, 3) ("fwdConnectStart: reusing pconn FD %d\n", fd);
 	    fwdState->server_fd = fd;