diff --git a/apps/confbridge/conf_config_parser.c b/apps/confbridge/conf_config_parser.c
index d3ffcb881345be7737073849643f47ec21804316..7fcc7005c23061b6f43c06371d61aac44013f641 100644
--- a/apps/confbridge/conf_config_parser.c
+++ b/apps/confbridge/conf_config_parser.c
@@ -963,12 +963,17 @@ static const struct ast_datastore_info confbridge_datastore = {
 	.type = "confbridge",
 	.destroy = func_confbridge_destroy_cb
 };
+
 int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data, const char *value)
 {
 	struct ast_datastore *datastore;
 	struct func_confbridge_data *b_data;
 	char *parse;
 	struct ast_variable tmpvar = { 0, };
+	struct ast_variable template = {
+		.name = "template",
+		.file = "CONFBRIDGE"
+	};
 	AST_DECLARE_APP_ARGS(args,
 		AST_APP_ARG(type);
 		AST_APP_ARG(option);
@@ -1041,7 +1046,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
 				ast_datastore_free(datastore);
 			}
 			return 0;
-		} else if (!aco_process_var(&bridge_type, "dialplan", &tmpvar, &b_data->b_profile)) {
+		}
+
+		if (b_data && !b_data->b_usable && strcasecmp(args.option, "template")) {
+			template.value = DEFAULT_BRIDGE_PROFILE;
+			aco_process_var(&bridge_type, "dialplan", &template, &b_data->b_profile);
+		}
+
+		if (!aco_process_var(&bridge_type, "dialplan", &tmpvar, &b_data->b_profile)) {
 			b_data->b_usable = 1;
 			return 0;
 		}
@@ -1051,7 +1063,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
 			user_profile_destructor(&b_data->u_profile);
 			memset(&b_data->u_profile, 0, sizeof(b_data->u_profile));
 			return 0;
-		} else if (!aco_process_var(&user_type, "dialplan", &tmpvar, &b_data->u_profile)) {
+		}
+
+		if (b_data && !b_data->u_usable && strcasecmp(args.option, "template")) {
+			template.value = DEFAULT_USER_PROFILE;
+			aco_process_var(&user_type, "dialplan", &template, &b_data->u_profile);
+		}
+
+		if (!aco_process_var(&user_type, "dialplan", &tmpvar, &b_data->u_profile)) {
 			b_data->u_usable = 1;
 			return 0;
 		}
@@ -1067,7 +1086,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
 				ast_datastore_free(datastore);
 			}
 			return 0;
-		} else if (!aco_process_var(&menu_type, "dialplan", &tmpvar, b_data->menu)) {
+		}
+
+		if (b_data && !b_data->m_usable && strcasecmp(args.option, "template")) {
+			template.value = DEFAULT_MENU_PROFILE;
+			aco_process_var(&menu_type, "dialplan", &template, &b_data->menu);
+		}
+
+		if (!aco_process_var(&menu_type, "dialplan", &tmpvar, b_data->menu)) {
 			b_data->m_usable = 1;
 			return 0;
 		}