diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 73cb433e9329d508a789e23f5e93851bd3534830..65125820cddfe6dad57a7786416697e47bbcd903 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4142,7 +4142,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
 				transmit_response(p, "100 Trying", req);
 			}
 		} else {
-			if (p) {
+			if (p && !p->needdestroy) {
 				ast_log(LOG_NOTICE, "Unable to create/find channel\n");
 				transmit_response_reliable(p, "503 Unavailable", req);
 				p->needdestroy = 1;