diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c
index 8c8f5d47516fc9f2e44ed4da5ea2016a6f7b1811..20512f4dbc781ef586f81fb17a64b5134d7ce2b3 100644
--- a/apps/app_chanspy.c
+++ b/apps/app_chanspy.c
@@ -198,9 +198,9 @@ static int start_spying(struct ast_channel *chan, struct ast_channel *spychan, s
 
 	ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan->name, chan->name);
 
-	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);	
@@ -219,9 +219,9 @@ static void stop_spying(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);
 };
 
 /* Map 'volume' levels from -4 through +4 into
diff --git a/apps/app_sendtext.c b/apps/app_sendtext.c
index 248c559bc00e549e06b20b2f56a0e0d53076dbab..e9bdfe57111b0525e5ff2b3dfb0b2c9fbad4702b 100644
--- a/apps/app_sendtext.c
+++ b/apps/app_sendtext.c
@@ -93,9 +93,9 @@ static int sendtext_exec(struct ast_channel *chan, void *data)
 			priority_jump = 1;
 	}
 
-	ast_mutex_lock(&chan->lock);
+	ast_channel_lock(chan);
 	if (!chan->tech->send_text) {
-		ast_mutex_unlock(&chan->lock);
+		ast_channel_unlock(chan);
 		/* Does not support transport */
 		if (priority_jump || ast_opt_priority_jumping)
 			ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101);
@@ -103,7 +103,7 @@ static int sendtext_exec(struct ast_channel *chan, void *data)
 		return 0;
 	}
 	status = "FAILURE";
-	ast_mutex_unlock(&chan->lock);
+	ast_channel_unlock(chan);
 	res = ast_sendtext(chan, args.text);
 	if (!res)
 		status = "SUCCESS";
diff --git a/funcs/func_channel.c b/funcs/func_channel.c
index 3fe5db24010bcf788c044ca707d64222d1e38ea1..a181fec4f5c4187611903b3477c88879f5af1ce8 100644
--- a/funcs/func_channel.c
+++ b/funcs/func_channel.c
@@ -40,15 +40,15 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/stringfields.h"
 #define locked_copy_string(chan, dest, source, len) \
 	do { \
-		ast_mutex_lock(&chan->lock); \
+		ast_channel_lock(chan); \
 		ast_copy_string(dest, source, len); \
-		ast_mutex_unlock(&chan->lock); \
+		ast_channel_unlock(chan); \
 	} while (0)
 #define locked_string_field_set(chan, field, source) \
 	do { \
-		ast_mutex_lock(&chan->lock); \
+		ast_channel_lock(chan); \
 		ast_string_field_set(chan, field, source); \
-		ast_mutex_unlock(&chan->lock); \
+		ast_channel_unlock(chan); \
 	} while (0)
 
 static int func_channel_read(struct ast_channel *chan, char *function,