diff --git a/src/dynbh/dynbh.c b/src/dynbh/dynbh.c
index f89090e5e8b6883e1ad4e1cb0027afe1e41946fd..36f323ed5da54cd5aa7e0ebc22b77028b7bb2546 100644
--- a/src/dynbh/dynbh.c
+++ b/src/dynbh/dynbh.c
@@ -186,10 +186,8 @@ static void bridge_readd(atimer_t *t)
 /* callback to send ap autoconfig search */
 static void send_apconf_cb(atimer_t *t)
 {
-	struct ethport *ap = container_of(t, struct ethport,
-			send_apconf);
+	struct ethport *ap = container_of(t, struct ethport, send_apconf);
 	char mid[16] = {0};
-	char *endptr = NULL;
 
 	fprintf(stderr, "|%s:%d| sending query num %d for ifname:%s alid:%s \n", __func__, __LINE__, (ap->num_mid+1), ap->ifname, ap->ctx->alidstr);
 	runCmd("[ -n \"$(ubus list ieee1905.al.%s)\" ] || ubus call ieee1905 add_interface '{\"ifname\":\"%s\"}'", ap->ifname, ap->ifname);
@@ -201,12 +199,12 @@ ubus call ieee1905 cmdu '{"ifname":"eth0", "dst":"01:80:C2:00:00:13", "type":7,
 	runCmd("ubus list ieee1905.al.%s", ap->ifname);
 	fprintf(stderr, "mid = %s\n", mid);
 	errno = 0;
-	ap->mid[ap->num_mid] = (uint16_t) strtol(mid, &endptr, 16);
-	if (errno || *endptr != '\0') {
+	ap->mid[ap->num_mid] = (uint16_t) strtoul(mid, NULL, 10);
+	if (errno) {
 		fprintf(stderr, "Invalid mid value: %s\n", mid);
 		ap->mid[ap->num_mid] = 0;
 	}
-	fprintf(stderr, "mid[%d] = %d\n", ap->num_mid, ap->mid[ap->num_mid]);
+	fprintf(stderr, "mid[%d] = %u\n", ap->num_mid, ap->mid[ap->num_mid]);
 	if (ap->num_mid < 31)
 		ap->num_mid++;