diff --git a/libs/openzap/mod_openzap/mod_openzap.c b/libs/openzap/mod_openzap/mod_openzap.c
index c9b200fa2f..5c9aa41963 100644
--- a/libs/openzap/mod_openzap/mod_openzap.c
+++ b/libs/openzap/mod_openzap/mod_openzap.c
@@ -891,7 +891,7 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
 
 	const char *dest = NULL;
 	char *data = NULL;
-	int span_id = 0, chan_id = 0;
+	int span_id = -1, chan_id = 0;
 	zap_channel_t *zchan = NULL;
 	switch_call_cause_t cause = SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
 	char name[128];
@@ -941,7 +941,12 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
 		dest = "";
 	}
 
-	if (!span_id && !switch_strlen_zero(span_name)) {
+	if (span_id == 0 && chan_id != 0) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Span 0 is used to pick the first available span, selecting a channel is not supported (and doesn't make sense)\n");
+        return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+	}
+
+	if (span_id == -1 && !switch_strlen_zero(span_name)) {
 		zap_span_t *span;
 		zap_status_t zstatus = zap_span_find_by_name(span_name, &span);
 		if (zstatus == ZAP_SUCCESS && span) {
@@ -949,7 +954,7 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
 		}
 	}
 
-	if (!span_id) {
+	if (span_id == -1) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Missing span\n");
 		return SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
 	}
diff --git a/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c b/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c
index 169cae6146..dc6555d1ba 100644
--- a/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c
+++ b/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c
@@ -832,7 +832,7 @@ static ZIO_SIG_CONFIGURE_FUNCTION(zap_libpri_configure_span)
 			}
 			node = str2node(val);
 			if (-1 == node) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Unknown node type %s, defaulting to CPE mode\n", val);
+				zap_log(ZAP_LOG_ERROR, "Unknown node type %s, defaulting to CPE mode\n", val);
 				node = PRI_CPE;
 			}
 			isdn_data->node = node;
diff --git a/libs/openzap/src/zap_io.c b/libs/openzap/src/zap_io.c
index e71f0cda9c..ad00ce9f03 100644
--- a/libs/openzap/src/zap_io.c
+++ b/libs/openzap/src/zap_io.c
@@ -1041,51 +1041,48 @@ zap_status_t zap_channel_open_chan(zap_channel_t *zchan)
 
 zap_status_t zap_channel_open(uint32_t span_id, uint32_t chan_id, zap_channel_t **zchan)
 {
+	zap_channel_t *check;
 	zap_status_t status = ZAP_FAIL;
 
 	zap_mutex_lock(globals.mutex);
 
-	if (span_id < ZAP_MAX_SPANS_INTERFACE && chan_id < ZAP_MAX_CHANNELS_SPAN) {
-		zap_channel_t *check;
-		
-		if (span_id > globals.span_index || !globals.spans[span_id]) {
-			zap_log(ZAP_LOG_ERROR, "SPAN NOT DEFINED!\n");
-			*zchan = NULL;
-			goto done;
-		}
-
-		if (globals.spans[span_id]->channel_request) {
-			zap_log(ZAP_LOG_ERROR, "Individual channel selection not implemented on this span.\n");
-			*zchan = NULL;
-			goto done;
-		}
-		
-		check = globals.spans[span_id]->channels[chan_id];
-
-		if (zap_test_flag(check, ZAP_CHANNEL_SUSPENDED) || 
-			!zap_test_flag(check, ZAP_CHANNEL_READY) || (status = zap_mutex_trylock(check->mutex)) != ZAP_SUCCESS) {
-			*zchan = NULL;
-			goto done;
-		}
-		
-		status = ZAP_FAIL;
-
-		if (zap_test_flag(check, ZAP_CHANNEL_READY) && (!zap_test_flag(check, ZAP_CHANNEL_INUSE) || 
-														(check->type == ZAP_CHAN_TYPE_FXS && check->token_count == 1))) {
-			if (!zap_test_flag(check, ZAP_CHANNEL_OPEN)) {
-				status = check->zio->open(check);
-				if (status == ZAP_SUCCESS) {
-					zap_set_flag(check, ZAP_CHANNEL_OPEN);
-				}
-			} else {
-				status = ZAP_SUCCESS;
-			}
-			zap_set_flag(check, ZAP_CHANNEL_INUSE);
-			*zchan = check;
-		}
-		zap_mutex_unlock(check->mutex);
+	if (span_id > globals.span_index  || chan_id >= ZAP_MAX_CHANNELS_SPAN || !globals.spans[span_id]) {
+		zap_log(ZAP_LOG_ERROR, "SPAN NOT DEFINED!\n");
+		*zchan = NULL;
+		goto done;		
 	}
 
+	if (globals.spans[span_id]->channel_request) {
+		zap_log(ZAP_LOG_ERROR, "Individual channel selection not implemented on this span.\n");
+		*zchan = NULL;
+		goto done;
+	}
+	
+	check = globals.spans[span_id]->channels[chan_id];
+
+	if (zap_test_flag(check, ZAP_CHANNEL_SUSPENDED) || 
+		!zap_test_flag(check, ZAP_CHANNEL_READY) || (status = zap_mutex_trylock(check->mutex)) != ZAP_SUCCESS) {
+		*zchan = NULL;
+		goto done;
+	}
+	
+	status = ZAP_FAIL;
+
+	if (zap_test_flag(check, ZAP_CHANNEL_READY) && (!zap_test_flag(check, ZAP_CHANNEL_INUSE) || 
+													(check->type == ZAP_CHAN_TYPE_FXS && check->token_count == 1))) {
+		if (!zap_test_flag(check, ZAP_CHANNEL_OPEN)) {
+			status = check->zio->open(check);
+			if (status == ZAP_SUCCESS) {
+				zap_set_flag(check, ZAP_CHANNEL_OPEN);
+			}
+		} else {
+			status = ZAP_SUCCESS;
+		}
+		zap_set_flag(check, ZAP_CHANNEL_INUSE);
+		*zchan = check;
+	}
+	zap_mutex_unlock(check->mutex);
+
 	done:
 	zap_mutex_unlock(globals.mutex);