diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 54d2a6bb6c45ae47ecd06e3b498c6696efbd0d97..7514f2b9f0942cd0660072375a7440bdfde33fff 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -7032,7 +7032,7 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio, struct zt_p
 				if (p.sigtype != (signalling & 0x3ffff)) {
 					ast_log(LOG_ERROR, "Signalling requested on channel %d is %s but line is in %s signalling\n", channel, sig2str(signalling), sig2str(p.sigtype));
 					destroy_zt_pvt(&tmp);
-					return tmp;
+					return NULL;
 				}
 				tmp->law = p.curlaw;
 				tmp->span = p.spanno;