diff --git a/lib/modules/Tools.pmod/Standalone.pmod/features.pike b/lib/modules/Tools.pmod/Standalone.pmod/features.pike
index 97dbade2ef15f5913eac85ea49c772367fdc3fbf..fe8aab566c4c1d49bcd2a8eb46eea2361aaaf6e5 100644
--- a/lib/modules/Tools.pmod/Standalone.pmod/features.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/features.pike
@@ -26,8 +26,11 @@ void test_ipv6()
   if (check) {
     // The following fails on Solaris machines which haven't
     // been configured for IPv6 (ENETUNREACH).
-    int portno = array_sscanf(port->query_address(), "%*s %d")[0];
-    check = Stdio.File()->connect("::1", portno);
+    if( port->query_address() )
+    {
+      int portno = array_sscanf(port->query_address(), "%*s %d")[0];
+      check = Stdio.File()->connect("::1", portno);
+    }
   }
   item("IPv6 connecting", check);
 }