--- hostapd-20120707/src/ap/wpa_auth.c  2012-07-24 18:39:46.478606571 +0200
+++ hostapd-20120707/src/ap/wpa_auth.c  2012-07-24 18:40:42.686680840 +0200
@@ -2416,6 +2416,9 @@ static void wpa_group_gtk_init(struct wp

 static int wpa_group_update_sta(struct wpa_state_machine *sm, void *ctx)
 {
+       
+       if (ctx != sm->group) return 0;
+       
        if (sm->wpa_ptk_state != WPA_PTK_PTKINITDONE) {
                wpa_auth_logger(sm->wpa_auth, sm->addr, LOGGER_DEBUG,
                                "Not in PTKINITDONE; skip Group Key update");
@@ -2470,7 +2473,7 @@ static void wpa_group_setkeys(struct wpa
                           group->GKeyDoneStations);
                group->GKeyDoneStations = 0;
        }
-       wpa_auth_for_each_sta(wpa_auth, wpa_group_update_sta, NULL);
+       wpa_auth_for_each_sta(wpa_auth, wpa_group_update_sta, group);
        wpa_printf(MSG_DEBUG, "wpa_group_setkeys: GKeyDoneStations=%d",
                   group->GKeyDoneStations);
 }
