Index: /branches/rel_apv_10_4_0_112_india/usr/src/sys/click/net/click_ether.c
===================================================================
--- /branches/rel_apv_10_4_0_112_india/usr/src/sys/click/net/click_ether.c	(revision 37956)
+++ /branches/rel_apv_10_4_0_112_india/usr/src/sys/click/net/click_ether.c	(working copy)
@@ -2348,6 +2348,15 @@
 	if(isipv6) {
 		ret = is_clicktcp6_packet(m, ifp, &ip_p, &l4_hdr);
 	} else {
+            iph = mtod(m, struct ip *);
+            if (iph->ip_off & htons(IP_MF | IP_OFFMASK)) {
+                /* XXXGL: shouldn't we save & set m_flags? */
+                m = ip_reass(m);
+                if (m == NULL)
+                    return;
+                m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED | CSUM_IP_VALID;
+                m->m_pkthdr.csum_data = 0xffff;
+            }
 		ret = is_clicktcp_packet(&m, ifp, &ip_p, &l4_hdr);
 	}
 
