diff --git a/main/bridge.c b/main/bridge.c
index 5e065fb35b3017a4bf9321465964fcc3b4e7722d..8284fd3af96b6abaf9e52dcdab6c046b97b16add 100644
--- a/main/bridge.c
+++ b/main/bridge.c
@@ -3808,7 +3808,7 @@ void ast_bridge_update_talker_src_video_mode(struct ast_bridge *bridge, struct a
 		data->average_talking_energy = talker_energy;
 	} else if ((data->average_talking_energy < talker_energy) && is_keyframe) {
 		if (data->chan_old_vsrc) {
-			ast_channel_unref(data->chan_old_vsrc);
+			data->chan_old_vsrc = ast_channel_unref(data->chan_old_vsrc);
 		}
 		if (data->chan_vsrc) {
 			data->chan_old_vsrc = data->chan_vsrc;