diff -up wpa_supplicant-0.6.4/src/drivers/driver_wext.c.use-IW_ENCODE_TEMP wpa_supplicant-0.6.4/src/drivers/driver_wext.c --- wpa_supplicant-0.6.4/src/drivers/driver_wext.c.use-IW_ENCODE_TEMP 2008-08-10 13:33:12.000000000 -0400 +++ wpa_supplicant-0.6.4/src/drivers/driver_wext.c 2008-08-27 17:22:06.000000000 -0400 @@ -1836,6 +1836,7 @@ static int wpa_driver_wext_set_key_ext(v os_memset(&iwr, 0, sizeof(iwr)); os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); iwr.u.encoding.flags = key_idx + 1; + iwr.u.encoding.flags |= IW_ENCODE_TEMP; if (alg == WPA_ALG_NONE) iwr.u.encoding.flags |= IW_ENCODE_DISABLED; iwr.u.encoding.pointer = (caddr_t) ext; @@ -1967,6 +1968,7 @@ int wpa_driver_wext_set_key(void *priv, os_memset(&iwr, 0, sizeof(iwr)); os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); iwr.u.encoding.flags = key_idx + 1; + iwr.u.encoding.flags |= IW_ENCODE_TEMP; if (alg == WPA_ALG_NONE) iwr.u.encoding.flags |= IW_ENCODE_DISABLED; iwr.u.encoding.pointer = (caddr_t) key; @@ -1981,6 +1983,7 @@ int wpa_driver_wext_set_key(void *priv, os_memset(&iwr, 0, sizeof(iwr)); os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); iwr.u.encoding.flags = key_idx + 1; + iwr.u.encoding.flags |= IW_ENCODE_TEMP; iwr.u.encoding.pointer = (caddr_t) NULL; iwr.u.encoding.length = 0; if (ioctl(drv->ioctl_sock, SIOCSIWENCODE, &iwr) < 0) {