diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c
index 445f9e3d0553daca76e22ff84d64885f65174645..b87d8c6aa14d59a4bfbcccacdf3469c023e36e7f 100644
--- a/addons/cdr_mysql.c
+++ b/addons/cdr_mysql.c
@@ -430,6 +430,9 @@ static int my_load_module(int reload)
 	int res;
 	struct ast_config *cfg;
 	struct ast_variable *var;
+	/* CONFIG_STATUS_FILEUNCHANGED is impossible when config_flags is always 0,
+	 * and it has to be zero, so a reload can be sent to tell the driver to
+	 * rescan the table layout. */
 	struct ast_flags config_flags = { 0 };
 	struct column *entry;
 	char *temp;
@@ -445,11 +448,13 @@ static int my_load_module(int reload)
 	 * have changed, which is not detectable by config file change detection,
 	 * but should still cause the configuration to be re-parsed. */
 	cfg = ast_config_load(config, config_flags);
-	if (!cfg) {
+	if (cfg == CONFIG_STATUS_FILEMISSING) {
 		ast_log(LOG_WARNING, "Unable to load config for mysql CDR's: %s\n", config);
 		return AST_MODULE_LOAD_SUCCESS;
-	} else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
-		return AST_MODULE_LOAD_SUCCESS;
+	} else if (cfg == CONFIG_STATUS_FILEINVALID) {
+		ast_log(LOG_ERROR, "Unable to load configuration file '%s'\n", config);
+		return AST_MODULE_LOAD_DECLINE;
+	}
 
 	if (reload) {
 		AST_RWLIST_WRLOCK(&columns);
diff --git a/main/xmldoc.c b/main/xmldoc.c
index 56f1c74f01c41e53490fb08213024a47cb1155e0..225ed66110098f6e7224155811c0fa87087a1cb9 100644
--- a/main/xmldoc.c
+++ b/main/xmldoc.c
@@ -358,7 +358,13 @@ char *ast_xmldoc_printable(const char *bwinput, int withcolors)
 
 			/* Setup color */
 			if (withcolors) {
-				ast_term_color_code(&colorized, colorized_tags[c].colorfg, 0);
+				if (ast_opt_light_background) {
+					/* Turn off *bright* colors */
+					ast_term_color_code(&colorized, colorized_tags[c].colorfg & 0x7f, 0);
+				} else {
+					/* Turn on *bright* colors */
+					ast_term_color_code(&colorized, colorized_tags[c].colorfg | 0x80, 0);
+				}
 				if (!colorized) {
 					return NULL;
 				}