diff --git a/main/channel.c b/main/channel.c
index 669b81529b19a25066d4741b61869674946c0416..b4ee0c3b7b35bf2069221cc3858ee3cf40bdb795 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -10355,6 +10355,8 @@ struct ast_channel *ast_channel_yank(struct ast_channel *yankee)
 	ast_format_copy(ast_channel_readformat(yanked_chan), &my_vars.readformat);
 	ast_format_copy(ast_channel_writeformat(yanked_chan), &my_vars.writeformat);
 
+	ast_channel_unlock(yanked_chan);
+
 	if (ast_channel_move(yanked_chan, yankee)) {
 		ast_hangup(yanked_chan);
 		return NULL;