diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d6a1ec9610c12690064bf3c7c158a4ae68201bd3..2caaa0d76ee72e706c34fd6bf02f9af6b5cfc163 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6397,6 +6397,9 @@ static int sip_register(const char *value, int lineno)
 			ast_log(LOG_WARNING, "%s is not a valid port number at line %d\n", porta, lineno);
 			return -1;
 		}
+	} else {
+		portnum = (transport == SIP_TRANSPORT_TLS) ?
+			STANDARD_TLS_PORT : STANDARD_SIP_PORT;
 	}
 	if (!(reg = ast_calloc(1, sizeof(*reg)))) {
 		ast_log(LOG_ERROR, "Out of memory. Can't allocate SIP registry entry\n");