diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index 99f8850c602d6fe6663afbc5f59faf1a552e4759..7b16d48e97ca74b1734ce19733836bd59dc26476 100644
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -133,9 +133,9 @@ static void stopmon(struct ast_channel *chan, struct ast_channel_spy *spy)
 	if (!chan)
 		return;
 
-	ast_mutex_lock(&chan->lock);
+	ast_channel_lock(chan);
 	ast_channel_spy_remove(chan, spy);
-	ast_mutex_unlock(&chan->lock);
+	ast_channel_unlock(chan);
 }
 
 static int startmon(struct ast_channel *chan, struct ast_channel_spy *spy) 
@@ -146,9 +146,9 @@ static int startmon(struct ast_channel *chan, struct ast_channel_spy *spy)
 	if (!chan)
 		return -1;
 
-	ast_mutex_lock(&chan->lock);
+	ast_channel_lock(chan);
 	res = ast_channel_spy_add(chan, spy);
-	ast_mutex_unlock(&chan->lock);
+	ast_channel_unlock(chan);
 		
 	if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan)))
 		ast_softhangup(peer, AST_SOFTHANGUP_UNBRIDGE);	
@@ -410,9 +410,9 @@ static int stop_mixmonitor_exec(struct ast_channel *chan, void *data)
 
 	LOCAL_USER_ADD(u);
 
-	ast_mutex_lock(&chan->lock);
+	ast_channel_lock(chan);
 	ast_channel_spy_stop_by_type(chan, mixmonitor_spy_type);
-	ast_mutex_unlock(&chan->lock);
+	ast_channel_unlock(chan);
 
 	LOCAL_USER_REMOVE(u);
 
@@ -436,7 +436,7 @@ static int mixmonitor_cli(int fd, int argc, char **argv)
 	else if (!strcasecmp(argv[1], "stop"))
 		ast_channel_spy_stop_by_type(chan, mixmonitor_spy_type);
 
-	ast_mutex_unlock(&chan->lock);
+	ast_channel_unlock(chan);
 
 	return RESULT_SUCCESS;
 }