diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6f5e263d03df3797ebf926347ae4743379e5d282..1e5b927cf0e264044f9f4420b9c8df3bb2380471 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -5111,6 +5111,10 @@ static int sip_hangup(struct ast_channel *ast)
 				p->invitestate = INV_TERMINATED;
 			}
 		} else {	/* Call is in UP state, send BYE */
+			if (p->stimer->st_active == TRUE) {
+				stop_session_timer(p);
+			}
+
 			if (!p->pendinginvite) {
 				struct ast_channel *bridge = ast_bridged_channel(oldowner);
 				char *audioqos = "";