diff -urN busybox-1.7.1/networking/httpd.c busybox-1.7.1-httpd/networking/httpd.c
--- busybox-1.7.1/networking/httpd.c	2007-09-03 12:48:27.000000000 +0100
+++ busybox-1.7.1-httpd/networking/httpd.c	2007-09-25 19:12:02.000000000 +0100
@@ -598,7 +598,7 @@
 				++p;                             /* so keep last character */
 			}
 			*p = '\0';
-			sprintf(p0, "%s:%s", p0, c);
+			sprintf(p0 + strlen(p0), ":%s", c);
 		}
 #endif
 
@@ -1602,6 +1602,13 @@
 	if (fromAddr->sa.sa_family == AF_INET) {
 		rmt_ip = ntohl(fromAddr->sin.sin_addr.s_addr);
 	}
+#if ENABLE_FEATURE_IPV6
+	if (fromAddr->sa.sa_family == AF_INET6
+	 && fromAddr->sin6.sin6_addr.s6_addr32[0] == 0
+	 && fromAddr->sin6.sin6_addr.s6_addr32[1] == 0
+	 && ntohl(fromAddr->sin6.sin6_addr.s6_addr32[2]) == 0xffff)
+		rmt_ip = ntohl(fromAddr->sin6.sin6_addr.s6_addr32[3]);
+#endif
 	if (ENABLE_FEATURE_HTTPD_CGI || DEBUG || verbose) {
 		rmt_ip_str = xmalloc_sockaddr2dotted(&fromAddr->sa);
 	}
