diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile
index 122ee9b1a4cf5471073e7155a98e9c164f8cc9cc..e438ef349ed08018d88b45facc4e6339a5feabc7 100644
--- a/package/hostapd/Makefile
+++ b/package/hostapd/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
 PKG_VERSION:=20120428
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_REV:=1f0cc27eb98f7d1af9c64d0752238184cbdb9a24
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/package/hostapd/files/hostapd.sh b/package/hostapd/files/hostapd.sh
index 10062307e55772611af82d46675e65d23b3c98bb..fc84ec50fc86d425789165718d70386fce588e3e 100644
--- a/package/hostapd/files/hostapd.sh
+++ b/package/hostapd/files/hostapd.sh
@@ -84,6 +84,9 @@ hostapd_set_bss_options() {
 			config_get auth_secret "$vif" auth_secret
 			[ -z "$auth_secret" ] && config_get auth_secret "$vif" key
 			append "$var" "auth_server_shared_secret=$auth_secret" "$N"
+			config_get_bool auth_cache "$vif" auth_cache 0
+			[ "$auth_cache" -gt 0 ] || append "$var" "disable_pmksa_caching=1" "$N"
+			[ "$auth_cache" -gt 0 ] || append "$var" "okc=0" "$N"
 			config_get acct_server "$vif" acct_server
 			[ -n "$acct_server" ] && append "$var" "acct_server_addr=$acct_server" "$N"
 			config_get acct_port "$vif" acct_port
@@ -174,7 +177,7 @@ hostapd_set_bss_options() {
 	if [ "$wpa" -ge "2" ]
 	then
 		# RSN -> allow preauthentication
-		config_get rsn_preauth "$vif" rsn_preauth
+		config_get_bool rsn_preauth "$vif" rsn_preauth "$auth_cache"
 		if [ -n "$bridge" -a "$rsn_preauth" = 1 ]
 		then
 			append "$var" "rsn_preauth=1" "$N"