-#else
-/* FreeBSD 6.0 requires SUSv3 to support IPv6. Apparently some other
- * OS requires SUSv3 to define IOV_MAX, but its identity is lost for
- * the time being.
+#elif defined(__FreeBSD__) && __FreeBSD__ >= 5
+/* FreeBSD 6.0 requires SUSv3 to support IPv6 -- but if you ask for
+ * that specifically (by defining _XOPEN_SOURCE to anything at all),
+ * they cleverly hide IPPROTO_IPV6. If you don't ask for anything,
+ * they give you everything.