diff --git a/main/config.c b/main/config.c
index 3c1b95602eee8fcbdfdee6cc5e8aaa7b104b1e67..40a135d012fd592f53717787a9dd27d680444375 100644
--- a/main/config.c
+++ b/main/config.c
@@ -69,7 +69,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 static char *extconfig_conf = "extconfig.conf";
 
 static struct ao2_container *cfg_hooks;
-static void config_hook_exec(const char *filename, const char *module, struct ast_config *cfg);
+static void config_hook_exec(const char *filename, const char *module, const struct ast_config *cfg);
 
 /*! \brief Structure to keep comments for rewriting configuration files */
 struct ast_comment {
@@ -2271,6 +2271,9 @@ int ast_config_text_file_save(const char *configfile, const struct ast_config *c
 	}
 	ao2_ref(fileset, -1); /* this should destroy the hash container */
 
+	/* pass new configuration to any config hooks */
+	config_hook_exec(configfile, generator, cfg);
+
 	return 0;
 }
 
@@ -3288,7 +3291,7 @@ void ast_config_hook_unregister(const char *name)
 	ao2_find(cfg_hooks, &tmp, OBJ_POINTER | OBJ_UNLINK | OBJ_NODATA);
 }
 
-static void config_hook_exec(const char *filename, const char *module, struct ast_config *cfg)
+static void config_hook_exec(const char *filename, const char *module, const struct ast_config *cfg)
 {
 	struct ao2_iterator it;
 	struct cfg_hook *hook;