diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 5ea41e6a11d249720098e5a9703486abebe35cb7..3f8cf4f740393f19fbab273d22e7cb48be4c5490 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7022,8 +7022,10 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
 					}
 					if (found)
 						transmit_response(p, "200 OK", req);
-					else
+					else {
 						transmit_response(p, "403 Forbidden", req);
+						p->needdestroy = 1;
+					}
 					
 				} else
 				    p->subscribed = 1;