struct wl1271 *wl = hw->priv;
        int ret;
 
-       wl1271_debug(DEBUG_MAC80211, "mac80211 configure filter");
+       wl1271_debug(DEBUG_MAC80211, "mac80211 configure filter changed %x"
+                    " total %x", changed, *total);
 
        mutex_lock(&wl->mutex);
 
        if (ret < 0)
                goto out;
 
-
-       if (*total & FIF_ALLMULTI)
-               ret = wl1271_acx_group_address_tbl(wl, false, NULL, 0);
-       else if (fp)
-               ret = wl1271_acx_group_address_tbl(wl, fp->enabled,
-                                                  fp->mc_list,
-                                                  fp->mc_list_length);
-       if (ret < 0)
-               goto out_sleep;
+       if (wl->bss_type != BSS_TYPE_AP_BSS) {
+               if (*total & FIF_ALLMULTI)
+                       ret = wl1271_acx_group_address_tbl(wl, false, NULL, 0);
+               else if (fp)
+                       ret = wl1271_acx_group_address_tbl(wl, fp->enabled,
+                                                          fp->mc_list,
+                                                          fp->mc_list_length);
+               if (ret < 0)
+                       goto out_sleep;
+       }
 
        /* determine, whether supported filter values have changed */
        if (changed == 0)