diff --git a/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh b/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh
index 7c7120cfb88b3565c6d7f41430698c7703d63fa7..c3e00a9ba394dcd013ce41eb5d89e34058ff6722 100755
--- a/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh
+++ b/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh
@@ -615,6 +615,40 @@ mac80211_iw_interface_add() {
 	return $rc
 }
 
+get_uci_idx() {
+	local phy=$1
+	local mode=$2
+	local ssid=$3
+
+	local sections=$(seq 0 15)
+
+
+	phyidx=$(echo "$phy" | sed 's/\(phy\)\([0-9]*\)/\2/g')
+	device="wl${phyidx}"
+
+	for section in $sections; do
+		d=$(uci get wireless.@wifi-iface[$section].device)
+		m=$(uci get wireless.@wifi-iface[$section].mode)
+		s=$(uci get wireless.@wifi-iface[$section].ssid)
+
+
+		[ -z "$d" ] && continue
+		[ -z "$m" ] && continue
+
+		logger -t mac80211 "[$section] $device/$mode/$ssid vs  $d/$m/$s"
+		[ -z "$s" ] && [ "$mode" == "ap" ] && continue
+
+		[ "$device" != "$d" ] && continue
+		[ "$mode" != "$m" ] && continue
+		[ "$ssid" != "$s" ] && [ "$mode" == "ap" ] && continue
+
+		echo "$section"
+		return
+	done
+
+	echo "unknown"
+}
+
 mac80211_prepare_vif() {
 	json_select config
 
@@ -657,7 +691,13 @@ mac80211_prepare_vif() {
 				;;
 		esac
 
-		logger -t mac80211 "$phy $mode generated ifname $ifname"
+		uci_idx=$(get_uci_idx $phy $mode $ssid)
+		logger -t mac80211 "$phy $mode generated ifname $ifname uci_idx $uci_idx"
+
+		[ "$uci_idx" != "unknown" ] && {
+			uci -q set wireless.@wifi-iface[$uci_idx].ifname="$ifname"
+			uci commit wireless
+		}
 	}
 
 	case $mode in