diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 468da78c178a2ea27600e752fb696bb1b09b9994..d419b2fdd471ddd23e58e9d7ce55ba66575e6b2c 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11189,14 +11189,13 @@ static void check_pendings(struct sip_pvt *p)
 {
 	if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
 		/* if we can't BYE, then this is really a pending CANCEL */
-		if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE)) {
+		if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE))
 			transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, 1, 0);
 			/* Actually don't destroy us yet, wait for the 487 on our original 
 			   INVITE, but do set an autodestruct just in case we never get it. */
-		} else {
+		else 
 			transmit_request_with_auth(p, SIP_BYE, 0, 1, 1);
-			ast_clear_flag(&p->flags[0], SIP_CAN_BYE);	
-		}
+		ast_clear_flag(&p->flags[0], SIP_PENDINGBYE);	
 		sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
 	} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
 		if (option_debug)