diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index fa0431aff6783d75984a5dfaac6f255071551bab..df406483c3ca58b59dd77e1d047c3a636a3a2080 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -9404,6 +9404,11 @@ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, stru
 			ast_log(LOG_DEBUG, "SIP response %d to standard invite\n", resp);
 	}
 
+	if (ast_test_flag(p, SIP_ALREADYGONE)) { /* This call is already gone */
+		ast_log(LOG_DEBUG, "Got response on call that is already terminated: %s (ignoring)\n", p->callid);
+		return;
+	}
+
 	switch (resp) {
 	case 100:	/* Trying */
 		sip_cancel_destroy(p);