diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 9c58f5a1436974baa35a8f253b6aad17f982556f..47c55c893dafa72993405efdda20f89ef208476e 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -6874,7 +6874,9 @@ static int handle_init_event(struct zt_pvt *i, int event)
 		case SIG_FXOLS:
 		case SIG_FXOGS:
 		case SIG_FXOKS:
-		        zt_set_hook(i->subs[SUB_REAL].zfd, ZT_OFFHOOK);
+			res = zt_set_hook(i->subs[SUB_REAL].zfd, ZT_OFFHOOK);
+			if (res && (errno == EBUSY))
+				break;
 			if (i->cidspill) {
 				/* Cancel VMWI spill */
 				free(i->cidspill);