diff --git a/src/core/agent.c b/src/core/agent.c
index e6c77d820fde6d06c87a01b2e2a2f98b915a817b..d6201c67b92160601cdaa79c7fc75e376b97b18b 100644
--- a/src/core/agent.c
+++ b/src/core/agent.c
@@ -3510,7 +3510,7 @@ static void agent_dispatch_autoconfig(struct uloop_timeout *t)
 	struct agent *a = container_of(t, struct agent, autocfg_dispatcher);
 	int diff;
 	struct netif_bk *bk;
-	int i;
+	int i, timeout = 120;
 
 	trace("|%s:%d| Triggering AP-Autoconfig Search\n", __func__, __LINE__);
 
@@ -3536,6 +3536,10 @@ static void agent_dispatch_autoconfig(struct uloop_timeout *t)
 		struct cmdu_cstruct *cmdu;
 		struct wifi_radio_element *radio = &a->radios[i];
 		int mid;
+
+		if (radio->state == ACS_ACTIVE)
+			timeout = 20;
+
 #if 0
 		if (/* radio->onboarded || */radio->configured) {
 			dbg("radio %s has been configured, don't trigger search\n",
@@ -3556,7 +3560,7 @@ static void agent_dispatch_autoconfig(struct uloop_timeout *t)
 		map_free_cmdu(cmdu);
 	}
 
-	uloop_timeout_set(&a->autocfg_dispatcher, 15 * 1000);
+	uloop_timeout_set(&a->autocfg_dispatcher, timeout * 1000);
 }
 
 static struct msg *agent_msg_enqueue(struct agent *a, int id,