diff --git a/main/channel.c b/main/channel.c
index 1dbe1126557304ac18903af5c78c92503c621c6e..999e39ba6e397e8bea6d5206200bed3957a03f20 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -7882,7 +7882,7 @@ int ast_channel_connected_line_macro(struct ast_channel *autoservice_chan, struc
 		? "CONNECTED_LINE_CALLER_SEND_MACRO" : "CONNECTED_LINE_CALLEE_SEND_MACRO");
 	macro = ast_strdupa(S_OR(macro, ""));
 	macro_args = pbx_builtin_getvar_helper(macro_chan, is_caller
-		? "CONNECTED_LINE_CALLER_SEND_MACRO_ARSG" : "CONNECTED_LINE_CALLEE_SEND_MACRO_ARGS");
+		? "CONNECTED_LINE_CALLER_SEND_MACRO_ARGS" : "CONNECTED_LINE_CALLEE_SEND_MACRO_ARGS");
 	macro_args = ast_strdupa(S_OR(macro_args, ""));
 	ast_channel_unlock(macro_chan);
 
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index 4d2c9ec49ab6178dc9c4ea50414c2632124ac262..5527109c4ad547d1e3563056ddae2e2447bf83d0 100644
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -1443,6 +1443,10 @@ static int local_ast_moh_start(struct ast_channel *chan, const char *mclass, con
 		}
 	}
 
+	if (ast_test_flag(global_flags, MOH_CACHERTCLASSES)) {
+		mohclass = get_mohbyname(mohclass->name, 0);
+	}
+
 	if (!mohclass) {
 		return -1;
 	}