From a9d72bc35d0e021f8db1ea480b1ddb0744d73bac Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Tue, 4 Sep 2012 19:08:06 -0500
Subject: [PATCH] fix small broadcast bug

---
 src/switch_ivr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/switch_ivr.c b/src/switch_ivr.c
index 0f98a9b856..95f0e901d8 100644
--- a/src/switch_ivr.c
+++ b/src/switch_ivr.c
@@ -560,7 +560,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
 
 			if (!switch_channel_test_flag(channel, CF_BROADCAST)) {
 				switch_channel_set_flag(channel, CF_BROADCAST);
-				inner--;
+				if (inner) {
+					inner--;
+				}
 			}
 
 			if (hold_bleg && switch_true(hold_bleg)) {
@@ -611,7 +613,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
 
 				if (switch_core_session_execute_application(session, app_name, app_arg) != SWITCH_STATUS_SUCCESS) {
 					if (!inner || switch_channel_test_flag(channel, CF_STOP_BROADCAST)) switch_channel_clear_flag(channel, CF_BROADCAST);
-					goto done;
+					break;
 				}
 
 				aftr = switch_micro_time_now();