diff --git a/wifimngr.c b/wifimngr.c
index fccdb4527cc8441be2528ef77e4d76d8d2f69252..277b4dedb9e2f3907f6938bda7a4c6e8df85c02a 100644
--- a/wifimngr.c
+++ b/wifimngr.c
@@ -5245,6 +5245,7 @@ int wl_apmld_status(struct ubus_context *ctx, struct ubus_object *obj,
 
 	a = blobmsg_open_array(&bb, "links");
 	for (i = 0; i < num; i++) {
+		struct wifi_ap ap = {};
 		char std_buf2[32] = "802.11";
 		char sec_str[128] = {0};
 		char std_buf[32] = {0};
@@ -5260,30 +5261,32 @@ int wl_apmld_status(struct ubus_context *ctx, struct ubus_object *obj,
 		blobmsg_add_u32(&bb, "ccfs0", link[i].ccfs0);
 		blobmsg_add_u32(&bb, "ccfs1", link[i].ccfs1);
 		blobmsg_add_u32(&bb, "bandwidth", bw_value(link[i].bandwidth));
-		blobmsg_add_u32(&bb, "puncture_bitmap", (int)BUF_GET_LE16(link[i].ap.bss.puncture));
-
 		blobmsg_add_macaddr(&bb, "macaddr", link[i].macaddr);
-		wifi_security_str(link[i].ap.bss.security, sec_str);
-		blobmsg_add_string(&bb, "security", sec_str);
-		blobmsg_add_string(&bb, "encryption", etostr(link[i].ap.bss.rsn.pair_ciphers,
-				   enc_buf, sizeof(enc_buf), 14, wifi_cipherstr));
 
-		snprintf(std_buf2 + strlen(std_buf2), 31, "%s",
-			 etostr(link[i].ap.bss.oper_std, std_buf, sizeof(std_buf), WIFI_NUM_STD, standard_str));
-		blobmsg_add_string(&bb, "standard", std_buf2);
-
-		blobmsg_add_u32(&bb, "num_stations", link[i].ap.bss.load.sta_count);
-		blobmsg_add_u32(&bb, "max_stations", link[i].ap.assoclist_max);
-		blobmsg_add_u32(&bb, "utilization", link[i].ap.bss.load.utilization);
-		blobmsg_add_u32(&bb, "adm_capacity", link[i].ap.bss.load.available);
-		blobmsg_add_u8(&bb, "hidden", !link[i].ap.ssid_advertised ? true : false);
-
-		wl_dump_supp_security(&bb, link[i].ap.sec.supp_modes);
-		wl_dump_capabilities(link[i].ap.bss.band, &bb,
-				     &link[i].ap.bss.caps,
-				     link[i].ap.bss.cbitmap,
-				     sizeof(link[i].ap.bss.cbitmap));
-		//wl_ap_wmm_status(&bb, link[i].ap.ac);
+		if (!wifi_ap_info_band(ifname, link[i].band, &ap)) {
+			blobmsg_add_u32(&bb, "puncture_bitmap", (int)BUF_GET_LE16(ap.bss.puncture));
+			wifi_security_str(ap.bss.security, sec_str);
+			blobmsg_add_string(&bb, "security", sec_str);
+			blobmsg_add_string(&bb, "encryption", etostr(ap.bss.rsn.pair_ciphers,
+					   enc_buf, sizeof(enc_buf), 14, wifi_cipherstr));
+
+			snprintf(std_buf2 + strlen(std_buf2), 31, "%s",
+				 etostr(ap.bss.oper_std, std_buf, sizeof(std_buf), WIFI_NUM_STD, standard_str));
+			blobmsg_add_string(&bb, "standard", std_buf2);
+
+			blobmsg_add_u32(&bb, "num_stations", ap.bss.load.sta_count);
+			blobmsg_add_u32(&bb, "max_stations", ap.assoclist_max);
+			blobmsg_add_u32(&bb, "utilization", ap.bss.load.utilization);
+			blobmsg_add_u32(&bb, "adm_capacity", ap.bss.load.available);
+			blobmsg_add_u8(&bb, "hidden", !ap.ssid_advertised ? true : false);
+
+			wl_dump_supp_security(&bb, ap.sec.supp_modes);
+			wl_dump_capabilities(ap.bss.band, &bb,
+					     &ap.bss.caps,
+					     ap.bss.cbitmap,
+					     sizeof(ap.bss.cbitmap));
+			//wl_ap_wmm_status(&bb, link[i].ap.ac);
+		}
 		blobmsg_close_table(&bb, t);
 	}
 	blobmsg_close_array(&bb, a);