diff --git a/main/features_config.c b/main/features_config.c
index 163c37dfa301aca87fd915e1749e4eb0dc9b84f6..6d5cf1a5e7924f99df90d852d849d53480b0f6b4 100644
--- a/main/features_config.c
+++ b/main/features_config.c
@@ -1345,9 +1345,9 @@ static struct ast_custom_function featuremap_function = {
 	.write = featuremap_write
 };
 
-static int load_config(int reload)
+static int load_config(void)
 {
-	if (!reload && aco_info_init(&cfg_info)) {
+	if (aco_info_init(&cfg_info)) {
 		ast_log(LOG_ERROR, "Unable to initialize configuration info for features\n");
 		return -1;
 	}
@@ -1441,10 +1441,8 @@ static int load_config(int reload)
 
 	if (aco_process_config(&cfg_info, 0) == ACO_PROCESS_ERROR) {
 		ast_log(LOG_ERROR, "Failed to process features.conf configuration!\n");
-		if (!reload) {
-			aco_info_destroy(&cfg_info);
-			ao2_global_obj_release(globals);
-		}
+		aco_info_destroy(&cfg_info);
+		ao2_global_obj_release(globals);
 		return -1;
 	}
 
@@ -1559,14 +1557,17 @@ void ast_features_config_shutdown(void)
 
 int ast_features_config_reload(void)
 {
-	return load_config(1);
+	if (aco_process_config(&cfg_info, 1) == ACO_PROCESS_ERROR) {
+		return -1;
+	}
+	return load_config();
 }
 
 int ast_features_config_init(void)
 {
 	int res;
 
-	res = load_config(0);
+	res = load_config();
 	res |= __ast_custom_function_register(&feature_function, NULL);
 	res |= __ast_custom_function_register(&featuremap_function, NULL);
 	res |= ast_cli_register_multiple(cli_features_config, ARRAY_LEN(cli_features_config));