diff -ur v2.6.13/linux/net/ipv4/ipvs/ip_vs_conn.c linux/net/ipv4/ipvs/ip_vs_conn.c --- v2.6.13/linux/net/ipv4/ipvs/ip_vs_conn.c 2005-08-29 07:51:29.000000000 +0300 +++ linux/net/ipv4/ipvs/ip_vs_conn.c 2005-09-03 00:41:10.316652464 +0300 @@ -196,6 +196,7 @@ list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { if (s_addr==cp->caddr && s_port==cp->cport && d_port==cp->vport && d_addr==cp->vaddr && + ((!s_port) ^ (!(cp->flags & IP_VS_CONN_F_NO_CPORT))) && protocol==cp->protocol) { /* HIT */ atomic_inc(&cp->refcnt);