diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c
index 3d30036..48edbdc 100644
--- sysdep/bsd/krt-sock.c
+++ sysdep/bsd/krt-sock.c
@@ -694,10 +694,10 @@ krt_read_addr(struct ks_msg *msg)
 #ifndef IPV6
     if (masklen == (BITS_PER_IP_ADDRESS - 2))
       ifa.opposite = ipa_opposite_m2(ifa.ip);
-#endif
 
-    if (!(iface->flags & IF_MULTIACCESS))
-      ifa.opposite = ifa.brd;
+    /* Do not trust kernel on PtP masks */
+    ifa.brd = ipa_or(ifa.prefix, ipa_not(ipa_mkmask(masklen)));
+#endif
   }
   else if (!(iface->flags & IF_MULTIACCESS) && ipa_nonzero(ifa.brd))
   {
