diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6bd89f5d2321d33615af3d04b7c6777db8eaa3a9..c3379ab9df268698765fa5573f297e3e43ce8104 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3937,7 +3937,9 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
 						ast_queue_hangup(p->owner, 0);
 					break;
 				}
-				transmit_request(p, "ACK", seqno, 0);
+				/* ACK on invite */
+				if (!strcasecmp(msg, "INVITE"))
+					transmit_request(p, "ACK", seqno, 0);
 				p->alreadygone = 1;
 				if (!p->owner)
 					p->needdestroy = 1;