diff --git a/src/switch_ivr.c b/src/switch_ivr.c
index dc6cda2aa9..78b809769e 100644
--- a/src/switch_ivr.c
+++ b/src/switch_ivr.c
@@ -2009,7 +2009,33 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, c
 											   const char *say_method, switch_input_args_t *args)
 {
 	switch_say_interface_t *si;
+	switch_channel_t *channel;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
+	const char *save_path = NULL, *chan_lang = NULL, *lang = NULL;
+	
+	switch_assert(session);
+	channel = switch_core_session_get_channel(session);
+	switch_assert(channel);
+
+	lang = switch_channel_get_variable(channel, "language");
+
+	if (!lang) {
+		chan_lang = switch_channel_get_variable(channel, "default_language");
+		if (!chan_lang) {
+			chan_lang = "en";
+		}
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "No language specified - Using [%s]\n", chan_lang);
+	} else {
+		chan_lang = lang;
+	}
+
+	save_path = switch_channel_get_variable(channel, "sound_prefix");
+
+	switch_channel_set_variable_printf(channel, "sound_prefix", "%s%ssounds%s%s", 
+									   SWITCH_GLOBAL_dirs.base_dir,
+									   SWITCH_PATH_SEPARATOR,
+									   SWITCH_PATH_SEPARATOR,
+									   chan_lang);
 
 	if ((si = switch_loadable_module_get_say_interface(module_name))) {
 		/* should go back and proto all the say mods to const.... */
@@ -2019,6 +2045,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say(switch_core_session_t *session, c
 		status = SWITCH_STATUS_FALSE;
 	}
 
+	switch_channel_set_variable(channel, "sound_prefix", save_path);
+	
 	return status;
 }