diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
index ffb88a03f..671eacd2c 100644
--- a/src/ap/wpa_auth.c
+++ b/src/ap/wpa_auth.c
@@ -652,6 +652,18 @@ static void wpa_auth_pmksa_free_cb(struct rsn_pmksa_cache_entry *entry,
      wpa_auth_for_each_sta(wpa_auth, wpa_auth_pmksa_clear_cb, entry);
 }
 
+static void wpa_reconfig_group_rekey_timer(struct wpa_authenticator *wpa_auth)
+{
+     if (!wpa_auth)
+           return;
+
+     eloop_cancel_timeout(wpa_rekey_ptk, wpa_auth, NULL);
+
+     if (wpa_auth->conf.wpa_group_rekey) {
+           eloop_register_timeout(wpa_auth->conf.wpa_group_rekey,
+                              0, wpa_rekey_gtk, wpa_auth, NULL);
+     }
+}
 
 static int wpa_group_init_gmk_and_counter(struct wpa_authenticator *wpa_auth,
                                struct wpa_group *group)
@@ -990,6 +1002,8 @@ int wpa_reconfig(struct wpa_authenticator *wpa_auth,
      group->GInit = false;
      wpa_group_sm_step(wpa_auth, group);
 
+     wpa_reconfig_group_rekey_timer(wpa_auth);
+
      return 0;
 }
 
