diff --git a/src/ap/beacon.c b/src/ap/beacon.c
index 1a46d4d..9e6b66a 100644
--- a/src/ap/beacon.c
+++ b/src/ap/beacon.c
@@ -652,9 +652,12 @@
 #endif /* CONFIG_P2P */
 
 #ifdef CONFIG_CLIENT_TAXONOMY
-	if (sta) {
-		hostapd_taxonomy_probe_req(sta, ie, ie_len);
-		hostapd_write_sta_taxonomy(sta);
+	{
+		struct sta_info *sta = ap_get_sta(hapd, mgmt->sa);
+		if (sta) {
+			hostapd_taxonomy_probe_req(sta, ie, ie_len);
+			hostapd_write_sta_taxonomy(sta);
+		}
 	}
 #endif /* CONFIG_CLIENT_TAXONOMY */
 
diff --git a/src/common/hw_features_common.c b/src/common/hw_features_common.c
index e61f824..ee5c873 100644
--- a/src/common/hw_features_common.c
+++ b/src/common/hw_features_common.c
@@ -16,6 +16,15 @@
 #include "hw_features_common.h"
 
 
+int experiment(const char *name)
+{
+	char filename[128];
+	snprintf(filename, sizeof(filename), "/config/experiments/%s.active",
+	         name);
+	return access(filename, F_OK) == 0;
+}
+
+
 struct hostapd_channel_data * hw_get_channel_chan(struct hostapd_hw_modes *mode,
 						  int chan, int *freq)
 {
@@ -198,9 +207,15 @@
 			sec_bss++;
 	}
 	if (sec_bss && !pri_bss) {
-		wpa_printf(MSG_INFO,
-			   "Switch own primary and secondary channel to get secondary channel with no Beacons from other BSSes");
-		return 2;
+		if (experiment("NoSwapWifiPrimaryChannel")) {
+			wpa_printf(MSG_INFO, "NoSwapPrimaryWifiChannel: "
+			           "would have swapped channels (1).");
+		} else {
+			wpa_printf(MSG_INFO, "Switch own primary and secondary "
+			           "channel to get secondary channel with no Beacons "
+			           "from other BSSes");
+			return 2;
+		}
 	}
 
 	/*
@@ -224,11 +239,16 @@
 			get_pri_sec_chan(bss, &bss_pri_chan, &bss_sec_chan);
 			if (pri_chan == bss_sec_chan &&
 			    sec_chan == bss_pri_chan) {
-				wpa_printf(MSG_INFO, "Switch own primary and "
-					   "secondary channel due to BSS "
-					   "overlap with " MACSTR,
-					   MAC2STR(bss->bssid));
-				return 2;
+				if (experiment("NoSwapWifiPrimaryChannel")) {
+					wpa_printf(MSG_INFO, "NoSwapPrimaryWifiChannel: "
+					           "would have swapped channels (2).");
+				} else {
+					wpa_printf(MSG_INFO, "Switch own primary and "
+					           "secondary channel due to BSS "
+					           "overlap with " MACSTR,
+					           MAC2STR(bss->bssid));
+					           return 2;
+				}
 			}
 		}
 	}
diff --git a/src/common/hw_features_common.h b/src/common/hw_features_common.h
index 7f43d00..7af8331 100644
--- a/src/common/hw_features_common.h
+++ b/src/common/hw_features_common.h
@@ -36,5 +36,6 @@
 			    int vht_enabled, int sec_channel_offset,
 			    int vht_oper_chwidth, int center_segment0,
 			    int center_segment1, u32 vht_caps);
+int experiment(const char *name);
 
 #endif /* HW_FEATURES_COMMON_H */
