diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index a627f6dfa96e..b1c8165fc0ef 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -216,6 +216,7 @@ ip_input(struct mbuf *m)
 	struct ipq *fp;
 	struct in_ifaddr *ia;
 	int hlen;
+	u_short sum;
 
 #ifdef	DIAGNOSTIC
 	if ((m->m_flags & M_PKTHDR) == 0)
@@ -264,11 +265,11 @@ ip_input(struct mbuf *m)
 		ip = mtod(m, struct ip *);
 	}
 	if (hlen == sizeof(struct ip)) {
-		ip->ip_sum = in_cksum_hdr(ip);
+		sum = in_cksum_hdr(ip);
 	} else {
-		ip->ip_sum = in_cksum(m, hlen);
+		sum = in_cksum(m, hlen);
 	}
-	if (ip->ip_sum) {
+	if (sum) {
 		ipstat.ips_badsum++;
 		goto bad;
 	}