--- /dev/null
+--- mod_perl-1.24/src/modules/perl/Connection.xs.v6 Tue Apr 11 09:49:19 2000
++++ mod_perl-1.24/src/modules/perl/Connection.xs Fri Nov 3 08:29:29 2000
+@@ -78,7 +78,7 @@
+ RETVAL = newSVpv((char *)&conn->remote_addr,
+ sizeof conn->remote_addr);
+ if(sv_addr) {
+- struct sockaddr_in addr;
++ struct sockaddr_storage addr;
+ STRLEN sockaddrlen;
+ char * new_addr = SvPV(sv_addr,sockaddrlen);
+ if (sockaddrlen != sizeof(addr)) {
+@@ -106,7 +106,18 @@
+ #else
+ conn->remote_ip = pstrdup(conn->pool, (char *)SvPV(ST(1),na));
+ #endif
+- conn->remote_addr.sin_addr.s_addr = inet_addr(conn->remote_ip);
++ switch(conn->remote_addr.ss_family)
++ {
++ case AF_INET:
++ inet_pton(AF_INET, conn->remote_ip, ((struct sockaddr_in*)&conn->remote_addr)->sin_addr.s_addr);
++ break;
++ case AF_INET6:
++ inet_pton(AF_INET6, conn->remote_ip, ((struct sockaddr_in6*)&conn->remote_addr)->sin6_addr.s6_addr);
++ break;
++ default:
++ croak("Apache doesn't support this address family\n");
++ break;
++ }
+ }
+
+ OUTPUT: