diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index c48f811a82f206874642cc5df69f72b00f2f20fb..aa81a1e51da2a4cb01b430e0bd0d2b0d0f1cab23 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -1148,7 +1148,7 @@ static int alloc_sub(struct zt_pvt *p, int x)
 {
 	ZT_BUFFERINFO bi;
 	int res;
-	if (p->subs[x].zfd < 0) {
+	if (p->subs[x].zfd >= 0) {
 		ast_log(LOG_WARNING, "%s subchannel of %d already in use\n", subnames[x], p->channel);
 		return -1;
 	}