--- /usr/src/sys/dev/ic/xl.c.orig	Mon Mar 24 19:02:36 2003
+++ /usr/src/sys/dev/ic/xl.c	Thu Aug 14 15:39:08 2003
@@ -2440,6 +2440,16 @@
 			error = ifmedia_ioctl(ifp, ifr,
 			    &mii->mii_media, command);
 		break;
+	case SIOCSIFMACADDR:
+		if (ifr->ifr_addr.sa_family == AF_ETHER) {
+			bcopy(ifr->ifr_addr.sa_data, sc->sc_arpcom.ac_enaddr,
+			    ETHER_ADDR_LEN);
+			ether_ifsetaddr(ifp);
+			xl_init(sc);
+		} else {
+			error = EINVAL;
+		}
+		break;
 	default:
 		error = EINVAL;
 		break;
