diff --git a/networking/ping.c b/networking/ping.c
index bbe2c9f..e413bec 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -101,15 +101,9 @@
 	pkt->icmp_type = ICMP_ECHO;
 	pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
 
-	c = sendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN, 0,
+	c = xsendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN,
 			   (struct sockaddr *) &pingaddr, sizeof(pingaddr));
 
-	if (c < 0) {
-		if (ENABLE_FEATURE_CLEAN_UP)
-			close(pingsock);
-		bb_perror_msg_and_die("sendto");
-	}
-
 	/* listen for replies */
 	while (1) {
 		struct sockaddr_in from;
@@ -153,15 +147,9 @@
 	sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
 	setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
 
-	c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0,
+	c = xsendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr),
 			   (struct sockaddr *) &pingaddr, sizeof(pingaddr));
 
-	if (c < 0) {
-		if (ENABLE_FEATURE_CLEAN_UP)
-			close(pingsock);
-		bb_perror_msg_and_die("sendto");
-	}
-
 	/* listen for replies */
 	while (1) {
 		struct sockaddr_in6 from;
@@ -306,15 +294,12 @@
 
 	/* sizeof(pingaddr) can be larger than real sa size, but I think
 	 * it doesn't matter */
-	sz = sendto(pingsock, pkt, size_pkt, 0,	&pingaddr.sa, sizeof(pingaddr));
-	if (sz < 0)
-		bb_perror_msg_and_die("sendto");
+	sz = xsendto(pingsock, pkt, size_pkt, &pingaddr.sa, sizeof(pingaddr));
 	if (sz != size_pkt)
-		bb_error_msg_and_die("ping wrote %d chars; %d expected", sz,
-			size_pkt);
+		bb_error_msg_and_die(bb_msg_write_error);
 
 	signal(SIGALRM, sp);
-	if (pingcount == 0 || ntransmitted < pingcount) {	/* schedule next in 1s */
+	if (pingcount == 0 || ntransmitted < pingcount) { /* schedule next in 1s */
 		alarm(PINGINTERVAL);
 	} else { /* done, wait for the last ping to come back */
 		/* todo, don't necessarily need to wait so long... */
