diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 2d4ab866aab2a48b9602945e695e149e34fd3775..57f8bb975d798bc500bee53417da5d6cced7d138 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11916,6 +11916,8 @@ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, stru
 		/* Then we AUTH */
 		ast_string_field_free(p, theirtag);	/* forget their old tag, so we don't match tags when getting response */
 		if (!ast_test_flag(req, SIP_PKT_IGNORE)) {
+			if (p->authtries < MAX_AUTHTRIES)
+				p->invitestate = INV_CALLING;
 			if (p->authtries == MAX_AUTHTRIES || do_proxy_auth(p, req, resp, SIP_INVITE, 1)) {
 				ast_log(LOG_NOTICE, "Failed to authenticate on INVITE to '%s'\n", get_header(&p->initreq, "From"));
 				ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);