diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 523ff8e810e95fd56b8577e223ece0bf01c0b132..3d5b8230ac9417b800dde0f681e1ee682d23ae4d 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2421,7 +2421,7 @@ static int sip_register(char *value, int lineno)
 		reg->expire = -1;
 		reg->timeout =  -1;
 		reg->refresh = default_expiry;
-		reg->portno = htons(atoi(porta));
+		reg->portno = porta ? htons(atoi(porta)) : 0;
 		reg->callid_valid = 0;
 		reg->ocseq = 101;
 		ast_mutex_lock(&regl.lock);