diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 9947f46f0982e83bba2d10dc88e509e7ad32b4eb..0d9a0179f02e71525db49d8db7054ad9fd6c229e 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1008,7 +1008,7 @@ static int sip_hangup(struct ast_channel *ast)
 		} else {
 			if (!p->pendinginvite) {
 				/* Send a hangup */
-				transmit_request_with_auth(p, "BYE", 0, 0);
+				transmit_request_with_auth(p, "BYE", 0, 1);
 			} else {
 				/* Note we will need a BYE when this all settles out
 				   but we can't send one while we have "INVITE" outstanding. */
@@ -4361,7 +4361,7 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
 				transmit_request(p, "ACK", seqno, 0);
 				/* Go ahead and send bye at this point */
 				if (p->pendingbye) {
-					transmit_request_with_auth(p, "BYE", 0, 0);
+					transmit_request_with_auth(p, "BYE", 0, 1);
 					p->needdestroy = 1;
 				}
 			} else if (!strcasecmp(msg, "REGISTER")) {
@@ -4800,7 +4800,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
 				}
 			}
 			/* Always increment on a BYE */
-			transmit_request_with_auth(p, "BYE", 0, 0);
+			transmit_request_with_auth(p, "BYE", 0, 1);
 			p->alreadygone = 1;
 		}
 	} else if (!strcasecmp(cmd, "CANCEL")) {