diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 2a281e4c4b06..9afbd4617dd5 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -3533,6 +3533,7 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
 	struct wpabuf *req_mlbuf, *resp_mlbuf;
 
 	wpa_s->connection_set = 0;
+	wpa_s->ieee80211ac = 0;
 
 	if (!req_ies || !resp_ies ||
 	    ieee802_11_parse_elems(req_ies, req_ies_len, &req_elems, 0) ==
@@ -3554,6 +3555,12 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
 		resp_elems.he_capabilities;
 	wpa_s->connection_eht = req_elems.eht_capabilities &&
 		resp_elems.eht_capabilities;
+
+	/* Keep the legacy ieee80211ac status indication limited to
+	 * actual VHT/IEEE 802.11ac associations. */
+	wpa_s->ieee80211ac = wpa_s->connection_vht &&
+		!wpa_s->connection_he && !wpa_s->connection_eht;
+
 	if (req_elems.rrm_enabled)
 		wpa_s->rrm.rrm_used = 1;
 
@@ -3750,10 +3757,6 @@ static int wpa_supplicant_event_associnfo(struct wpa_supplicant *wpa_s,
 #endif /* CONFIG_WNM */
 		interworking_process_assoc_resp(wpa_s, data->assoc_info.resp_ies,
 						data->assoc_info.resp_ies_len);
-		if ((wpa_s->hw_capab & BIT(CAPAB_VHT)) &&
-		    get_ie(data->assoc_info.resp_ies,
-			   data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP))
-			wpa_s->ieee80211ac = 1;
 
 		multi_ap_process_assoc_resp(wpa_s, data->assoc_info.resp_ies,
 					    data->assoc_info.resp_ies_len);
