diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 9e752ff0944ea6f061cc3a4cf2b6f3c289f5f755..5a2332417f813ce407ae322b5ac0e16de9a73ea9 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -5330,7 +5330,8 @@ static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, const st
 			if (rport && *(rport+6) == '=') 
 				rport = NULL;		/* We already have a parameter to rport */
 
-			if (rport && ast_test_flag(&p->flags[0], SIP_NAT) == SIP_NAT_ALWAYS) {
+			/* Check rport if NAT=yes or NAT=rfc3581 (which is the default setting)  */
+			if (rport && ((ast_test_flag(&p->flags[0], SIP_NAT) == SIP_NAT_ALWAYS) || (ast_test_flag(&p->flags[0], SIP_NAT) == SIP_NAT_RFC3581))) {
 				/* We need to add received port - rport */
 				char tmp[256], *end;
 
@@ -5347,9 +5348,6 @@ static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, const st
 				}
 
 				/* Add rport to first VIA header if requested */
-				/* Whoo hoo!  Now we can indicate port address translation too!  Just
-				   another RFC (RFC3581). I'll leave the original comments in for
-				   posterity.  */
 				snprintf(new, sizeof(new), "%s;received=%s;rport=%d",
 					tmp, ast_inet_ntoa(p->recv.sin_addr),
 					ntohs(p->recv.sin_port));
diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample
index 1d79cb30372635c05093c183cd7fd932b6c6d278..85fec8680c5179a01415c58ce604838848f0167b 100644
--- a/configs/sip.conf.sample
+++ b/configs/sip.conf.sample
@@ -255,7 +255,7 @@ srvlookup=yes			; Enable DNS SRV lookups on outbound calls
 ;
 ;nat=no				; Global NAT settings  (Affects all peers and users)
                                 ; yes = Always ignore info and assume NAT
-                                ; no = Use NAT mode only according to RFC3581 
+                                ; no = Use NAT mode only according to RFC3581 (;rport)
                                 ; never = Never attempt NAT mode or RFC3581 support
 				; route = Assume NAT, don't send rport 
 				; (work around more UNIDEN bugs)