diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
index b423c51..6e8b98d 100644
--- a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
+++ b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
@@ -867,7 +867,16 @@ static int on_ring(lpwrap_pri_t *spri, lpwrap_pri_event_t event_type, pri_event
 	ftdm_channel_t *chan = ftdm_span_get_channel(span, pevent->ring.channel);
 	ftdm_caller_data_t *caller_data = NULL;
 	int ret = 0;
-
+	int x;
+	if (!chan) {
+					for (x = 1; x <= ftdm_span_get_chan_count(span); x++) {
+									ftdm_channel_t *zc = ftdm_span_get_channel(span, x);
+									if (!ftdm_test_flag(zc, FTDM_CHANNEL_INUSE) && ftdm_channel_get_state(zc) == FTDM_CHANNEL_STATE_DOWN) {
+													chan = zc;
+													break;
+									}
+					}
+	}
 	if (!chan || ftdm_channel_get_state(chan) != FTDM_CHANNEL_STATE_DOWN || ftdm_test_flag(chan, FTDM_CHANNEL_INUSE)) {
 		ftdm_log(FTDM_LOG_WARNING, "--Duplicate Ring on channel %d:%d (ignored)\n", ftdm_span_get_id(span), pevent->ring.channel);
 		goto done;
