diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 89d86f675806eba6806a68e1dd2b4f859d590ec6..aca181d5817b48a8184e167b456ea011fd499a4d 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -5875,6 +5875,11 @@ static int pri_fixup(struct zt_pri *pri, int channel, q931_call *c)
 			return 0;
 		return channel;
 	}
+	if ((channel >= 1) && 
+		(channel <= pri->channels) && 
+		(pri->pvt[channel]) && 
+		(pri->pvt[channel]->call == c))
+		return channel;
 	for (x=1;x<=pri->channels;x++) {
 		if (!pri->pvt[x]) continue;
 		if (pri->pvt[x]->call == c) {