diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
index 1da54f296..b22147645 100644
--- a/src/rsn_supp/wpa.c
+++ b/src/rsn_supp/wpa.c
@@ -266,7 +266,7 @@ static int wpa_supplicant_get_pmk(struct wpa_sm *sm,
 					   "caching attempt");
 				sm->cur_pmksa = NULL;
 				abort_cached = 1;
-			} else {
+			} else if (!abort_cached) {
 				return -1;
 			}
 		}
diff --git a/wpa_supplicant/ChangeLog b/wpa_supplicant/ChangeLog
index 263291e6b..4f626c658 100644
--- a/wpa_supplicant/ChangeLog
+++ b/wpa_supplicant/ChangeLog
@@ -23,6 +23,9 @@ ChangeLog for wpa_supplicant
 	  with driver_nl80211.c (the old code from driver_wext.c was removed)
 	* added support (Linux only) for RoboSwitch chipsets (often found in
 	  consumer grade routers); driver interface 'roboswitch'
+	* fixed canceling of PMKSA caching when using drivers that generate
+	  RSN IE and refuse to drop PMKIDs that wpa_supplicant does not know
+	  about
 
 2008-11-01 - v0.6.5
 	* added support for SHA-256 as X.509 certificate digest when using the