diff --git a/codecs/codec_a_mu.c b/codecs/codec_a_mu.c
index b9c1c4938f35531033881ad6b75fa247124c3157..40e14ca5e5bcd4512423097fe5063a2b1a8bdf04 100644
--- a/codecs/codec_a_mu.c
+++ b/codecs/codec_a_mu.c
@@ -161,8 +161,9 @@ static int load_module(void)
 		res = ast_register_translator(&ulawtoalaw);
 	else
 		ast_unregister_translator(&alawtoulaw);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "A-law and Mulaw direct Coder/Decoder");
diff --git a/codecs/codec_adpcm.c b/codecs/codec_adpcm.c
index e76470b6c4b7a676b6ba86bd93e8c396d15ce5b9..a40bbbc9f6a80a19c3d0162cc51834c00eb6d885 100644
--- a/codecs/codec_adpcm.c
+++ b/codecs/codec_adpcm.c
@@ -350,13 +350,15 @@ static struct ast_translator lintoadpcm = {
 	.buf_size = BUFFER_SAMPLES/ 2,	/* 2 samples per byte */
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
 	struct ast_variable *var;
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var ; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			adpcmtolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -364,13 +366,15 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 /*! \brief standard module glue */
 static int reload(void)
 {
-	parse_config(1);
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -387,14 +391,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res = ast_register_translator(&adpcmtolin);
 	if (!res)
 		res = ast_register_translator(&lintoadpcm);
 	else
 		ast_unregister_translator(&adpcmtolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Adaptive Differential PCM Coder/Decoder",
diff --git a/codecs/codec_alaw.c b/codecs/codec_alaw.c
index 1c28055354bce3eb1d05a7d3d714da8e494a7c1c..f4436d162498d314ac00e89f7e9cdaf5c5566422 100644
--- a/codecs/codec_alaw.c
+++ b/codecs/codec_alaw.c
@@ -134,13 +134,15 @@ static struct ast_translator lintoalaw = {
 	.buf_size = BUFFER_SAMPLES,
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			alawtolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -148,14 +150,16 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 /*! \brief standard module stuff */
 
 static int reload(void)
 {
-	parse_config(1);
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -172,14 +176,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res = ast_register_translator(&alawtolin);
 	if (!res)
 		res = ast_register_translator(&lintoalaw);
 	else
 		ast_unregister_translator(&alawtolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "A-law Coder/Decoder",
diff --git a/codecs/codec_g722.c b/codecs/codec_g722.c
index b2b7609123ade437096742068b78802c43e68bbf..00e36fb33cb33cee9fbddb2a72ef0ac512a2a1e7 100644
--- a/codecs/codec_g722.c
+++ b/codecs/codec_g722.c
@@ -164,14 +164,16 @@ static struct ast_translator lintog722 = {
 	.buf_size = BUFFER_SAMPLES,
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
 
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			g722tolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -180,13 +182,14 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static int reload(void)
 {
-	parse_config(1);
-
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -204,15 +207,18 @@ static int load_module(void)
 	int res = 0;
 
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 
 	res |= ast_register_translator(&g722tolin);
 	res |= ast_register_translator(&lintog722);
 
-	if (res)
+	if (res) {
 		unload_module();
+		return AST_MODULE_LOAD_FAILURE;
+	}	
 
-	return res;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ITU G.722-64kbps G722 Transcoder",
diff --git a/codecs/codec_g726.c b/codecs/codec_g726.c
index ba80588fa642d4db5c6760ae0e34fc6f2445be1b..183c4a9e428680ed5241d17ad24d4780e7818fc9 100644
--- a/codecs/codec_g726.c
+++ b/codecs/codec_g726.c
@@ -894,14 +894,16 @@ static struct ast_translator g726aal2tog726 = {
 	.buf_size = BUFFER_SAMPLES,
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
 
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			g726tolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -910,13 +912,14 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static int reload(void)
 {
-	parse_config(1);
-
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -940,7 +943,8 @@ static int load_module(void)
 	int res = 0;
 
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 
 	res |= ast_register_translator(&g726tolin);
 	res |= ast_register_translator(&lintog726);
@@ -951,10 +955,12 @@ static int load_module(void)
 	res |= ast_register_translator(&g726aal2tog726);
 	res |= ast_register_translator(&g726tog726aal2);
 
-	if (res)
+	if (res) {
 		unload_module();
+		return AST_MODULE_LOAD_FAILURE;
+	}	
 
-	return res;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ITU G.726-32kbps G726 Transcoder",
diff --git a/codecs/codec_gsm.c b/codecs/codec_gsm.c
index b19abfe88d8ecbf8e9c0b67e2b1e0aa9f6a6a02b..3fbcf9c8e2a16502b24c3a9b66f2157c6c0a046c 100644
--- a/codecs/codec_gsm.c
+++ b/codecs/codec_gsm.c
@@ -235,13 +235,15 @@ static struct ast_translator lintogsm = {
 };
 
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
-	if (!cfg || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (!cfg)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED) 
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 	       if (!strcasecmp(var->name, "genericplc")) {
 		       gsmtolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -249,13 +251,16 @@ static void parse_config(int reload)
 	       }
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 /*! \brief standard module glue */
 static int reload(void)
 {
-	parse_config(1);
-	return 0;
+	if (parse_config(1)) {
+		return AST_MODULE_LOAD_DECLINE;
+	}
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -273,14 +278,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res = ast_register_translator(&gsmtolin);
 	if (!res) 
 		res=ast_register_translator(&lintogsm);
 	else
 		ast_unregister_translator(&gsmtolin);
-
-	return res;
+	if (res) 
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "GSM Coder/Decoder",
diff --git a/codecs/codec_ilbc.c b/codecs/codec_ilbc.c
index 637f22d122adbd6065d810efaf71ad7dc09ff909..ea84eded321e22846eaab2e93b72078c2c315ca6 100644
--- a/codecs/codec_ilbc.c
+++ b/codecs/codec_ilbc.c
@@ -237,8 +237,9 @@ static int load_module(void)
 		res=ast_register_translator(&lintoilbc);
 	else
 		ast_unregister_translator(&ilbctolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "iLBC Coder/Decoder");
diff --git a/codecs/codec_lpc10.c b/codecs/codec_lpc10.c
index 3ed528bef93283d9feb6384dd5f06469122ededc..ca49643362246c7de0d23d1d4d54b2c35326c713 100644
--- a/codecs/codec_lpc10.c
+++ b/codecs/codec_lpc10.c
@@ -261,13 +261,15 @@ static struct ast_translator lintolpc10 = {
 	.buf_size = LPC10_BYTES_IN_COMPRESSED_FRAME * (1 + BUFFER_SAMPLES / LPC10_SAMPLES_PER_FRAME),
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			lpc10tolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -276,13 +278,14 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static int reload(void)
 {
-	parse_config(1);
-
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 
@@ -300,14 +303,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res = ast_register_translator(&lpc10tolin);
 	if (!res) 
 		res = ast_register_translator(&lintolpc10);
 	else
 		ast_unregister_translator(&lpc10tolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "LPC10 2.4kbps Coder/Decoder",
diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c
index c4e24f915a01d79af16a980c156b5dc875eb7f67..bbb6be238210df954d52555ce759015327ccef7a 100644
--- a/codecs/codec_speex.c
+++ b/codecs/codec_speex.c
@@ -375,7 +375,7 @@ static struct ast_translator lintospeex = {
 	.buf_size = BUFFER_SAMPLES * 2, /* XXX maybe a lot less ? */
 };
 
-static void parse_config(int reload) 
+static int parse_config(int reload) 
 {
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
@@ -384,7 +384,9 @@ static void parse_config(int reload)
 	float res_f;
 
 	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 
 	for (var = ast_variable_browse(cfg, "speex"); var; var = var->next) {
 		if (!strcasecmp(var->name, "quality")) {
@@ -467,13 +469,14 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static int reload(void) 
 {
-	parse_config(1);
-
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -490,14 +493,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res=ast_register_translator(&speextolin);
 	if (!res) 
 		res=ast_register_translator(&lintospeex);
 	else
 		ast_unregister_translator(&speextolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Speex Coder/Decoder",
diff --git a/codecs/codec_ulaw.c b/codecs/codec_ulaw.c
index 4ffbe835f993b155f3d251a05d67c6fad24c16ab..b10054f3e82c9e364a3a6e0a4d271904b4690d0d 100644
--- a/codecs/codec_ulaw.c
+++ b/codecs/codec_ulaw.c
@@ -147,13 +147,15 @@ static struct ast_translator lintoulaw = {
 	.buffer_samples = BUFFER_SAMPLES,
 };
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
-	if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (cfg == NULL)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 		if (!strcasecmp(var->name, "genericplc")) {
 			ulawtolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -161,13 +163,14 @@ static void parse_config(int reload)
 		}
 	}
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static int reload(void)
 {
-	parse_config(1);
-
-	return 0;
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -184,14 +187,16 @@ static int load_module(void)
 {
 	int res;
 
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	res = ast_register_translator(&ulawtolin);
 	if (!res)
 		res = ast_register_translator(&lintoulaw);
 	else
 		ast_unregister_translator(&ulawtolin);
-
-	return res;
+	if (res)
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "mu-Law Coder/Decoder",
diff --git a/codecs/codec_zap.c b/codecs/codec_zap.c
index df400a9f9a0a6a4f19d801d97d6294069df8051e..5802ff2a15a76353ceb31a9cfa7af9e6f3585745 100644
--- a/codecs/codec_zap.c
+++ b/codecs/codec_zap.c
@@ -380,14 +380,16 @@ static void unregister_translators(void)
 	AST_LIST_UNLOCK(&translators);
 }
 
-static void parse_config(int reload)
+static int parse_config(int reload)
 {
 	struct ast_variable *var;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 	struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
 
-	if (!cfg || cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return;
+	if (!cfg)
+		return -1;
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+		return 0;
 
 	for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
 	       if (!strcasecmp(var->name, "genericplc")) {
@@ -396,8 +398,8 @@ static void parse_config(int reload)
 					   global_useplc ? "" : "not ");
 	       }
 	}
-
 	ast_config_destroy(cfg);
+	return 0;
 }
 
 static void build_translators(struct format_map *map, unsigned int dstfmts, unsigned int srcfmts)
@@ -456,14 +458,15 @@ static int reload(void)
 {
 	struct translator *cur;
 
-	parse_config(1);
+	if (parse_config(1))
+		return AST_MODULE_LOAD_DECLINE;
 
 	AST_LIST_LOCK(&translators);
 	AST_LIST_TRAVERSE(&translators, cur, entry)
 		cur->t.useplc = global_useplc;
 	AST_LIST_UNLOCK(&translators);
 
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
@@ -476,11 +479,11 @@ static int unload_module(void)
 
 static int load_module(void)
 {
-	parse_config(0);
+	if (parse_config(0))
+		return AST_MODULE_LOAD_DECLINE;
 	find_transcoders();
 	ast_cli_register_multiple(cli, sizeof(cli) / sizeof(cli[0]));
-
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Generic Zaptel Transcoder Codec Translator",
diff --git a/formats/format_g723.c b/formats/format_g723.c
index dd5a1e6afa70ea0adf2d4dcc59b69070d4c87dd5..64883fe88c19e1c65d1fb739a050ee31e04dc25c 100644
--- a/formats/format_g723.c
+++ b/formats/format_g723.c
@@ -152,7 +152,9 @@ static const struct ast_format g723_1_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&g723_1_f);
+	if (ast_format_register(&g723_1_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_g726.c b/formats/format_g726.c
index 09504bf6c002e30611447d566d813d7813a80199..ffaaa367cbb86d8cc178a05de6d0507964669230 100644
--- a/formats/format_g726.c
+++ b/formats/format_g726.c
@@ -255,10 +255,10 @@ static int load_module(void)
 	for (i = 0; f[i].format ; i++) {
 		if (ast_format_register(&f[i])) {	/* errors are fatal */
 			ast_log(LOG_WARNING, "Failed to register format %s.\n", f[i].name);
-			return -1;
+			return AST_MODULE_LOAD_FAILURE;
 		}
 	}
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_g729.c b/formats/format_g729.c
index 3f46bcbffa6173a23d1c6ae5627821c07260c216..5ad16d97e5a675f840ab96603f0e6fdd1cfda992 100644
--- a/formats/format_g729.c
+++ b/formats/format_g729.c
@@ -148,7 +148,9 @@ static const struct ast_format g729_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&g729_f);
+	if (ast_format_register(&g729_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_gsm.c b/formats/format_gsm.c
index f997af1190e7944422ffb47b3e5c396a1a915c8b..4bb49eb453966c388b31fae7764d73f5eafc6231 100644
--- a/formats/format_gsm.c
+++ b/formats/format_gsm.c
@@ -170,7 +170,9 @@ static const struct ast_format gsm_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&gsm_f);
+	if (ast_format_register(&gsm_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_h263.c b/formats/format_h263.c
index a2537f0372e31518f759f49a579e66047abafa8f..90fedfb556c7c4abc4da2c2398e216c5e4a072ac 100644
--- a/formats/format_h263.c
+++ b/formats/format_h263.c
@@ -186,7 +186,9 @@ static const struct ast_format h263_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&h263_f);
+	if (ast_format_register(&h263_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_h264.c b/formats/format_h264.c
index 4b471f84e5fe511e8a94b7eebe4938a71157be3c..e2bc36c2edd1819820984a913c6958e3b8b3286c 100644
--- a/formats/format_h264.c
+++ b/formats/format_h264.c
@@ -175,7 +175,9 @@ static const struct ast_format h264_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&h264_f);
+	if (ast_format_register(&h264_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_ilbc.c b/formats/format_ilbc.c
index 78d11791098a49ba84ca2775990aaabfc6d7828e..f7d37d5578a3319bb1cc5f3cb814ee91759ea42c 100644
--- a/formats/format_ilbc.c
+++ b/formats/format_ilbc.c
@@ -146,7 +146,9 @@ static const struct ast_format ilbc_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&ilbc_f);
+	if (ast_format_register(&ilbc_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_jpeg.c b/formats/format_jpeg.c
index edef171d2602b848bc50ad576b6082e1a6b0541e..bb0661074e33c1b10e17bd01d8d43986ba3fc2ee 100644
--- a/formats/format_jpeg.c
+++ b/formats/format_jpeg.c
@@ -114,7 +114,9 @@ static struct ast_imager jpeg_format = {
 
 static int load_module(void)
 {
-	return ast_image_register(&jpeg_format);
+	if (ast_image_register(&jpeg_format))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_ogg_vorbis.c b/formats/format_ogg_vorbis.c
index 3868c5a766ef6f9e76f79e838329fe5640f18f63..14127588bf0c7e0011ed1feb7a7d78b343ce70d6 100644
--- a/formats/format_ogg_vorbis.c
+++ b/formats/format_ogg_vorbis.c
@@ -553,7 +553,9 @@ static const struct ast_format vorbis_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&vorbis_f);
+	if (ast_format_register(&vorbis_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_pcm.c b/formats/format_pcm.c
index 6736ea99693ef5962ee65ece6a512359d24bca87..5c31408e5174b2ff9e51a50a585b0617f9f9942b 100644
--- a/formats/format_pcm.c
+++ b/formats/format_pcm.c
@@ -479,10 +479,12 @@ static int load_module(void)
 	for (index = 0; index < (sizeof(alaw_silence) / sizeof(alaw_silence[0])); index++)
 		alaw_silence[index] = AST_LIN2A(0);
 
-	return ast_format_register(&pcm_f)
+	if ( ast_format_register(&pcm_f)
 		|| ast_format_register(&alaw_f)
 		|| ast_format_register(&au_f)
-		|| ast_format_register(&g722_f);
+		|| ast_format_register(&g722_f) )
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_sln.c b/formats/format_sln.c
index c8c5cc04bd9e00814fecd67a95a7f2bb19e024fa..8bb369c9842e9cddfeb15296889cbe3ebbb40471 100644
--- a/formats/format_sln.c
+++ b/formats/format_sln.c
@@ -130,7 +130,9 @@ static const struct ast_format slin_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&slin_f);
+	if (ast_format_register(&slin_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_vox.c b/formats/format_vox.c
index c729f3b5cbf5aaf1a83bc13f24bcbda420ac69c2..79cf093dc186e8d2690594253318e5e1b3f39d4f 100644
--- a/formats/format_vox.c
+++ b/formats/format_vox.c
@@ -135,7 +135,9 @@ static const struct ast_format vox_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&vox_f);
+	if (ast_format_register(&vox_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_wav.c b/formats/format_wav.c
index d37b55cd4f274809429b7029a9f5735ddf7c67aa..c09c7ed1f22f18e29794b12aef5560f7b47413a4 100644
--- a/formats/format_wav.c
+++ b/formats/format_wav.c
@@ -491,7 +491,9 @@ static const struct ast_format wav_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&wav_f);
+	if (ast_format_register(&wav_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c
index fea08952ed9254ab8bb7b7ab5becef14bd47a590..6916ceaf4ca75c2c5dd9dbef5df0b3eb7b056b9c 100644
--- a/formats/format_wav_gsm.c
+++ b/formats/format_wav_gsm.c
@@ -559,7 +559,9 @@ static const struct ast_format wav49_f = {
 
 static int load_module(void)
 {
-	return ast_format_register(&wav49_f);
+	if (ast_format_register(&wav49_f))
+		return AST_MODULE_LOAD_FAILURE;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/res/res_adsi.c b/res/res_adsi.c
index ee6966ca7bc018c3ca5c5d775ea0ab13565b75fe..08ae71f7c51bea5cf81881908c74d965a610646a 100644
--- a/res/res_adsi.c
+++ b/res/res_adsi.c
@@ -1106,7 +1106,7 @@ static int load_module(void)
 	ast_adsi_input_control = _ast_adsi_input_control;
 	ast_adsi_input_format = _ast_adsi_input_format;
 
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/res/res_ael_share.c b/res/res_ael_share.c
index 7c4dc70a8e795f255f309f4483cf627a38177c53..daa6a236042d59a2d9dddfb0d2996a45504850eb 100644
--- a/res/res_ael_share.c
+++ b/res/res_ael_share.c
@@ -52,7 +52,7 @@ static int unload_module(void)
 
 static int load_module(void)
 {
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "share-able code for AEL",
diff --git a/res/res_clioriginate.c b/res/res_clioriginate.c
index 3cc3f2db22d26a8166e5623b384bffe0d646bcba..a0e598434e942340f914de763b618f59557a9027 100644
--- a/res/res_clioriginate.c
+++ b/res/res_clioriginate.c
@@ -190,7 +190,7 @@ static int unload_module(void)
 static int load_module(void)
 {
 	ast_cli_register_multiple(cli_cliorig, sizeof(cli_cliorig) / sizeof(struct ast_cli_entry));
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Call origination from the CLI");
diff --git a/res/res_convert.c b/res/res_convert.c
index 98f51774e00e4675f79f763a02198dbdf99b57db..974cf6ab7ceee255ed02d579210ba9190e847fda 100644
--- a/res/res_convert.c
+++ b/res/res_convert.c
@@ -159,7 +159,7 @@ static int unload_module(void)
 static int load_module(void)
 {
 	ast_cli_register_multiple(cli_convert, sizeof(cli_convert) / sizeof(struct ast_cli_entry));
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "File format conversion CLI command");
diff --git a/res/res_indications.c b/res/res_indications.c
index 74d6288e1d858a75dd841a3f4bdaec272a878e32..237424502d9791eda7edb96da84c2232f46a3ef5 100644
--- a/res/res_indications.c
+++ b/res/res_indications.c
@@ -410,7 +410,7 @@ static int load_module(void)
 	ast_register_application("PlayTones", handle_playtones, "Play a tone list", playtones_desc);
 	ast_register_application("StopPlayTones", handle_stopplaytones, "Stop playing a tone list","Stop playing a tone list");
 
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 /*! \brief Reload indications module */
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index b074394b3b4c40669499e05216d5e6f682b00d7f..dd1304ee43e6e8c6a69600c7c6d242b50899463d 100644
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -1322,7 +1322,7 @@ static int load_module(void)
 		ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup);
 	}
 
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int reload(void)
diff --git a/res/res_smdi.c b/res/res_smdi.c
index 91a6da4892d23fc2a242cdbb1f08ca00c96c0823..ee791895340b6794fa2bb862651841bfc4aede03 100644
--- a/res/res_smdi.c
+++ b/res/res_smdi.c
@@ -715,7 +715,7 @@ static int load_module(void)
 		ast_log(LOG_WARNING, "No SMDI interfaces are available to listen on, not starting SMDI listener.\n");
 		return AST_MODULE_LOAD_DECLINE;
 	} else
-		return 0;
+		return AST_MODULE_LOAD_SUCCESS;
 }
 
 static int unload_module(void)
diff --git a/res/res_speech.c b/res/res_speech.c
index b6e7437472144f0aa543c1464d2d7a899f9e842c..cb096d3d95cd68e3e6ee878ab0ea4b065b093e0a 100644
--- a/res/res_speech.c
+++ b/res/res_speech.c
@@ -341,7 +341,7 @@ static int unload_module(void)
 
 static int load_module(void)
 {
-	return 0;
+	return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Generic Speech Recognition API",