Index: /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_input.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_input.c	(revision 38379)
+++ /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_input.c	(working copy)
@@ -18503,7 +18503,7 @@
 				int mtu = ifp->if_mtu;
 				ip = mtod(m, struct ip *);
 				struct mbuf *mp = NULL;
-				if (ip->ip_p == IPPROTO_UDP && ntohs(ip->ip_len) > mtu) {
+				if ((ip->ip_p == IPPROTO_UDP || ip->ip_p == IPPROTO_TCP) && ntohs(ip->ip_len) > mtu) {
 					/*hardware checksum may work abormal for UDP if IP fragment happened*/
 					clickudp_udp_cksum_sw(m, ifp);
 
