mwifiex_set_sys_config_invalid_data(bss_cfg);
 
+       memcpy(bss_cfg->mac_addr, priv->curr_addr, ETH_ALEN);
+
        if (params->beacon_interval)
                bss_cfg->beacon_period = params->beacon_interval;
        if (params->dtim_period)
 
 #define TLV_TYPE_STA_MAC_ADDR       (PROPRIETARY_TLV_BASE_ID + 32)
 #define TLV_TYPE_BSSID              (PROPRIETARY_TLV_BASE_ID + 35)
 #define TLV_TYPE_CHANNELBANDLIST    (PROPRIETARY_TLV_BASE_ID + 42)
+#define TLV_TYPE_UAP_MAC_ADDRESS    (PROPRIETARY_TLV_BASE_ID + 43)
 #define TLV_TYPE_UAP_BEACON_PERIOD  (PROPRIETARY_TLV_BASE_ID + 44)
 #define TLV_TYPE_UAP_DTIM_PERIOD    (PROPRIETARY_TLV_BASE_ID + 45)
 #define TLV_TYPE_UAP_BCAST_SSID     (PROPRIETARY_TLV_BASE_ID + 48)
 
 static int
 mwifiex_uap_bss_param_prepare(u8 *tlv, void *cmd_buf, u16 *param_size)
 {
+       struct host_cmd_tlv_mac_addr *mac_tlv;
        struct host_cmd_tlv_dtim_period *dtim_period;
        struct host_cmd_tlv_beacon_period *beacon_period;
        struct host_cmd_tlv_ssid *ssid;
        int i;
        u16 cmd_size = *param_size;
 
+       mac_tlv = (struct host_cmd_tlv_mac_addr *)tlv;
+       mac_tlv->header.type = cpu_to_le16(TLV_TYPE_UAP_MAC_ADDRESS);
+       mac_tlv->header.len = cpu_to_le16(ETH_ALEN);
+       memcpy(mac_tlv->mac_addr, bss_cfg->mac_addr, ETH_ALEN);
+       cmd_size += sizeof(struct host_cmd_tlv_mac_addr);
+       tlv += sizeof(struct host_cmd_tlv_mac_addr);
+
        if (bss_cfg->ssid.ssid_len) {
                ssid = (struct host_cmd_tlv_ssid *)tlv;
                ssid->header.type = cpu_to_le16(TLV_TYPE_UAP_SSID);