diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index b36f86d..f4fc0a4 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -266,9 +266,6 @@
 {
 	struct ifreq ifr;
 	struct sockaddr_in sai;
-#if ENABLE_FEATURE_IPV6
-	struct sockaddr_in6 sai6;
-#endif
 #if ENABLE_FEATURE_IFCONFIG_HW
 	struct sockaddr sa;
 #endif
@@ -389,31 +386,33 @@
 							sai.sin_addr.s_addr = (~sai_netmask) | (sai_hostname & sai_netmask);
 						}
 #endif
+						else {
+							len_and_sockaddr *lsa = xhost2sockaddr(host, 0);
 #if ENABLE_FEATURE_IPV6
-						else if (inet_pton(AF_INET6, host, &sai6.sin6_addr) > 0) {
-							int sockfd6;
-							struct in6_ifreq ifr6;
+							if (lsa->sa.sa_family == AF_INET6) {
+								int sockfd6;
+								struct in6_ifreq ifr6;
 
-							memcpy((char *) &ifr6.ifr6_addr,
-									(char *) &sai6.sin6_addr,
-									sizeof(struct in6_addr));
+								memcpy((char *) &ifr6.ifr6_addr,
+										(char *) &(lsa->sin6.sin6_addr),
+										sizeof(struct in6_addr));
 
-							/* Create a channel to the NET kernel. */
-							sockfd6 = xsocket(AF_INET6, SOCK_DGRAM, 0);
-							if (ioctl(sockfd6, SIOGIFINDEX, &ifr) < 0)
-								bb_perror_msg_and_die("SIOGIFINDEX");
-							ifr6.ifr6_ifindex = ifr.ifr_ifindex;
-							ifr6.ifr6_prefixlen = prefix_len;
-							if (ioctl(sockfd6, a1op->selector, &ifr6) < 0)
-								bb_perror_msg_and_die(a1op->name);
-							continue;
-						}
+								/* Create a channel to the NET kernel. */
+								sockfd6 = xsocket(AF_INET6, SOCK_DGRAM, 0);
+								if (ioctl(sockfd6, SIOGIFINDEX, &ifr) < 0)
+									bb_perror_msg_and_die("SIOGIFINDEX");
+								ifr6.ifr6_ifindex = ifr.ifr_ifindex;
+								ifr6.ifr6_prefixlen = prefix_len;
+								if (ioctl(sockfd6, a1op->selector, &ifr6) < 0)
+									bb_perror_msg_and_die(a1op->name);
+								if (ENABLE_FEATURE_CLEAN_UP)
+									free(lsa);
+								continue;
+							}
 #endif
-						else if (inet_aton(host, &sai.sin_addr) == 0) {
-							/* It's not a dotted quad. */
-							struct hostent *hp = xgethostbyname(host);
-							memcpy((char *) &sai.sin_addr, (char *) hp->h_addr_list[0],
-									sizeof(struct in_addr));
+							sai.sin_addr = lsa->sin.sin_addr;
+							if (ENABLE_FEATURE_CLEAN_UP)
+								free(lsa);
 						}
 #if ENABLE_FEATURE_IFCONFIG_BROADCAST_PLUS
 						if (mask & A_HOSTNAME)
diff --git a/networking/traceroute.c b/networking/traceroute.c
index 4ddde2f..fd4c20e 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -247,7 +247,7 @@
 /*
  * UDP kernel structures and variables.
  */
-struct  udpiphdr {
+struct udpiphdr {
 	struct  ipovly ui_i;            /* overlaid ip structure */
 	struct  udphdr ui_u;            /* udp header */
 };
