diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index bf7d3bbd313c17a822cc1a0881192e8d40f86c6b..3119bb130104dfd6a7b4eeb7d29e1901827950b8 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3015,9 +3015,12 @@ static int transmit_invite(struct sip_pvt *p, char *cmd, int sdp, char *auth, ch
 {
 	struct sip_request req;
 	
-	if (init)
+	if (init) {
+		/* Bump branch even on initial requests */
+		p->branch ^= rand();
+		snprintf(p->via, sizeof(p->via), "SIP/2.0/UDP %s:%d;branch=z9hG4bK%08x", inet_ntoa(p->ourip), ourport, p->branch);
 		initreqprep(&req, p, cmd, vxml_url);
-	else
+	} else
 		reqprep(&req, p, cmd, 0, 1);
 		
 	if (auth)