--- wl.c.orig	2006-05-09 20:57:57.000000000 -0700
+++ wl.c	2008-05-04 14:50:05.000000000 -0700
@@ -261,7 +261,8 @@
 		uint8_t *vp;
 		sr = (struct ieee80211req_scan_result *)cp;
 		vp = (u_int8_t *)(sr + 1);
-		strlcpy(network_id, vp, sr->isr_ssid_len + 1);
+		memcpy(network_id, vp, sr->isr_ssid_len);
+		network_id[sizeof(network_id) - 1] = '\0';
 		if (!strcmp(network_id, network))
 			return (sr->isr_rssi);
 		cp += sr->isr_len;
@@ -283,6 +284,7 @@
 int
 get_wi_signal(const char *interface)
 {
+#ifndef __FreeBSD__  /* wi support is broken on FreeBSD 7 */
 	int		s;
 	struct ifreq	ifr;
 	struct wi_req	wreq;
@@ -319,6 +321,8 @@
 #ifdef __FreeBSD__
 	return (wreq.wi_val[1]);
 #endif
+#endif      /* wi support is broken on FreeBSD 7 */
+return -1;  /* wi support is broken on FreeBSD 7 */
 }
 
 /*