diff --git a/src/include/switch_channel.h b/src/include/switch_channel.h
index c0bef4be59..25273bafc4 100644
--- a/src/include/switch_channel.h
+++ b/src/include/switch_channel.h
@@ -79,6 +79,7 @@ SWITCH_DECLARE(int) switch_channel_test_ready(switch_channel_t *channel, switch_
 
 #define switch_channel_ready(_channel) switch_channel_test_ready(_channel, SWITCH_TRUE, SWITCH_FALSE)
 #define switch_channel_media_ready(_channel) switch_channel_test_ready(_channel, SWITCH_TRUE, SWITCH_TRUE)
+#define switch_channel_media_up(_channel) (switch_channel_test_flag(_channel, CF_ANSWERED) || switch_channel_test_flag(_channel, CF_EARLY_MEDIA))
 
 #define switch_channel_up(_channel) (switch_channel_get_state(_channel) < CS_HANGUP)
 #define switch_channel_down(_channel) (switch_channel_get_state(_channel) >= CS_HANGUP)
diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c
index f130625a75..88c72bf1b8 100644
--- a/src/switch_ivr_bridge.c
+++ b/src/switch_ivr_bridge.c
@@ -1398,10 +1398,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(const char *originator_uu
 				return SWITCH_STATUS_FALSE;
 			}
 
-			//if (!switch_channel_test_flag(originator_channel, CF_ANSWERED)) {
-			if (!switch_channel_media_ready(originator_channel)) {
-				if (switch_channel_media_ready(originatee_channel)) {
-				//if (switch_channel_test_flag(originatee_channel, CF_ANSWERED)) {
+			if (!switch_channel_media_up(originator_channel)) {
+				if (switch_channel_media_up(originatee_channel)) {
 					swap_session = originator_session;
 					originator_session = originatee_session;
 					originatee_session = swap_session;