diff -urN squid-2.5.STABLE14/src/icap_respmod.c squid/src/icap_respmod.c
--- squid-2.5.STABLE14/src/icap_respmod.c	2006-06-15 10:44:47.000000000 +0100
+++ squid/src/icap_respmod.c	2006-06-15 10:52:13.000000000 +0100
@@ -502,6 +502,7 @@
 	debug(81, 3) ("got 204 status from ICAP server\n");
 	debug(81, 3) ("setting icap->flags.no_content\n");
 	icap->flags.no_content = 1;
+	commSetTimeout(fd, -1, NULL, NULL);
 	/*
 	 * copy the response already written to the ICAP server
 	 */
@@ -905,7 +906,7 @@
     if (len > 0) {
 	fd_bytes(fd, len, FD_READ);
 	kb_incr(&statCounter.icap.all.kbytes_in, len);
-	commSetTimeout(fd, Config.Timeout.read, icapReadTimeout, icap);
+	commSetTimeout(fd, Config.Timeout.read, NULL, NULL);
 	if (icap->chunk_buf.size < icap->chunk_buf.capacity) {
 	    *(icap->chunk_buf.buf + icap->chunk_buf.size) = '\0';
 	    debug(81, 9) ("{%s}\n", icap->chunk_buf.buf);
