diff --git a/main/bridge_channel.c b/main/bridge_channel.c
index 92ad660eac0000621c9daae38ccd42846a80d2fe..1aa82abfcaa5a892493d73c1d5dcf5724adc0e6c 100644
--- a/main/bridge_channel.c
+++ b/main/bridge_channel.c
@@ -1527,8 +1527,9 @@ void bridge_channel_internal_pull(struct ast_bridge_channel *bridge_channel)
 	 * outgoing channel, clear the outgoing flag.
 	 */
 	if (ast_test_flag(ast_channel_flags(bridge_channel->chan), AST_FLAG_OUTGOING)
-			&& (ast_channel_softhangup_internal_flag(bridge_channel->chan) &
-				(AST_SOFTHANGUP_ASYNCGOTO | AST_SOFTHANGUP_UNBRIDGE))) {
+			&& (ast_channel_softhangup_internal_flag(bridge_channel->chan) & (AST_SOFTHANGUP_ASYNCGOTO | AST_SOFTHANGUP_UNBRIDGE)
+			    || bridge_channel->state == BRIDGE_CHANNEL_STATE_WAIT)) {
+		ast_debug(2, "Channel %s will survive this bridge; clearing outgoing (dialed) flag\n", ast_channel_name(bridge_channel->chan));
 		ast_clear_flag(ast_channel_flags(bridge_channel->chan), AST_FLAG_OUTGOING);
 	}