diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index fafb7082ddcdd525673bf96a4458576a3f64d72e..3cb14c494d350507ae31f27d0b97ab032f8d2998 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -2602,7 +2602,7 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
 				break;
 			} 
 		} else if (!strcasecmp(tmp->name, "regseconds")) {
-			if (sscanf(tmp->value, "%i", (int *)&regseconds) != 1)
+			if (sscanf(tmp->value, "%ld", (time_t *)&regseconds) != 1)
 				regseconds = 0;
 		} else if (!strcasecmp(tmp->name, "ipaddr")) {
 			inet_aton(tmp->value, &(peer->addr.sin_addr));
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d8d25071d204e663cec6a754e132e8b3472f7864..0cdbc4be079d3c46f783abfce037a0883cdc34d5 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -12048,7 +12048,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int
 		}
 
 		if (realtime && !strcasecmp(v->name, "regseconds")) {
-			if (sscanf(v->value, "%i", (int *)&regseconds) != 1)
+			if (sscanf(v->value, "%ld", (time_t *)&regseconds) != 1)
 				regseconds = 0;
 		} else if (realtime && !strcasecmp(v->name, "ipaddr") && !ast_strlen_zero(v->value) ) {
 			inet_aton(v->value, &(peer->addr.sin_addr));