diff -uNr squid-1.1.18.orig/src/Makefile.in squid-1.1.18/src/Makefile.in
--- squid-1.1.18.orig/src/Makefile.in	Fri Oct 24 18:57:11 1997
+++ squid-1.1.18/src/Makefile.in	Mon Nov 24 16:40:43 1997
@@ -17,6 +17,7 @@
 USE_SPLAY_TREE  = # -DUSE_SPLAY_TREE
 USE_BIN_TREE    = # -DUSE_BIN_TREE
 RELOAD_INTO_IMS	= # -DRELOAD_INTO_IMS
+PORT_REDIR_OPT  = # -DPASS_PORT_TO_REDIRECTOR
 UNDERSCORES_OPT = # -DALLOW_HOSTNAME_UNDERSCORES
 
 DEFINES         = $(HOST_OPT) $(AUTH_OPT) $(LOG_HDRS_OPT) \
diff -uNr squid-1.1.18.orig/src/redirect.c squid-1.1.18/src/redirect.c
--- squid-1.1.18.orig/src/redirect.c	Wed Apr 16 00:26:02 1997
+++ squid-1.1.18/src/redirect.c	Mon Nov 24 16:42:19 1997
@@ -40,6 +40,9 @@
     char *orig_url;
     struct in_addr client_addr;
     const char *client_ident;
+#ifdef PASS_PORT_TO_REDIRECTOR
+    unsigned short int client_port;
+#endif /* PASS_PORT_TO_REDIRECTOR */
     const char *method_s;
     RH handler;
 } redirectStateData;
@@ -297,11 +300,18 @@
     if ((fqdn = fqdncache_gethostbyaddr(r->client_addr, 0)) == NULL)
 	fqdn = dash_str;
     buf = get_free_8k_page();
+#ifdef PASS_PORT_TO_REDIRECTOR
+    sprintf(buf, "%s %s/%s %s/%d %s\n",
+#else /* PASS_PORT_TO_REDIRECTOR */
     sprintf(buf, "%s %s/%s %s %s\n",
+#endif /* PASS_PORT_TO_REDIRECTOR */
 	r->orig_url,
 	inet_ntoa(r->client_addr),
 	fqdn,
 	r->client_ident,
+#ifdef PASS_PORT_TO_REDIRECTOR
+        r->client_port,
+#endif /* PASS_PORT_TO_REDIRECTOR */
 	r->method_s);
     len = strlen(buf);
     comm_write(redirect->fd,
@@ -345,6 +355,9 @@
 	r->client_ident = icpState->ident.ident;
     }
     r->method_s = RequestMethodStr[icpState->request->method];
+#ifdef PASS_PORT_TO_REDIRECTOR
+    r->client_port = ntohs(icpState->peer.sin_port);
+#endif /* PASS_PORT_TO_REDIRECTOR */
     r->handler = handler;
     r->data = data;
     if ((redirector = GetFirstAvailable()))