diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c
index bee4f5002666fb0d9ab51c90c8b416543ce2deae..82f8a6e17c9abbb8c60a68b13a0529edb0e17533 100644
--- a/cdr/cdr_manager.c
+++ b/cdr/cdr_manager.c
@@ -64,12 +64,13 @@ static int load_config(int reload)
 	int newenablecdr = 0;
 
 	cfg = ast_config_load(CONF_FILE, config_flags);
-	if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+	if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
 		return 0;
+	}
 
 	if (cfg == CONFIG_STATUS_FILEINVALID) {
 		ast_log(LOG_ERROR, "Config file '%s' could not be parsed\n", CONF_FILE);
-		return 1;
+		return -1;
 	}
 
 	if (reload && customfields) {
@@ -83,7 +84,7 @@ static int load_config(int reload)
 		if (enablecdr)
 			ast_cdr_unregister(name);
 		enablecdr = 0;
-		return 0;
+		return -1;
 	}
 
 	while ( (cat = ast_category_browse(cfg, cat)) ) {
@@ -122,7 +123,7 @@ static int load_config(int reload)
 		ast_cdr_register(name, "Asterisk Manager Interface CDR Backend", manager_log);
 	enablecdr = newenablecdr;
 
-	return 1;
+	return 0;
 }
 
 static int manager_log(struct ast_cdr *cdr)
@@ -199,9 +200,9 @@ static int unload_module(void)
 
 static int load_module(void)
 {
-	/* Configuration file */
-	if (!load_config(0))
+	if (load_config(0)) {
 		return AST_MODULE_LOAD_DECLINE;
+	}
 
 	return AST_MODULE_LOAD_SUCCESS;
 }