diff --git a/include/common/cfgparse.h b/include/common/cfgparse.h
index c5777f9..35e5614 100644
--- a/include/common/cfgparse.h
+++ b/include/common/cfgparse.h
@@ -36,7 +36,8 @@
 struct cfg_keyword {
 	int section;                            /* section type for this keyword */
 	const char *kw;                         /* the keyword itself */
-	int (*parse)(char **args,               /* command line and arguments */
+	int (*parse)(                           /* 0=OK, <0=Alert, >0=Warning */
+		     char **args,               /* command line and arguments */
 		     int section_type,          /* current section CFG_{GLOBAL|LISTEN} */
 		     struct proxy *curpx,       /* current proxy (NULL in GLOBAL) */
 		     struct proxy *defpx,       /* default proxy (NULL in GLOBAL) */
diff --git a/src/cfgparse.c b/src/cfgparse.c
index af29a47..91e6c55 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -501,6 +501,7 @@
 	else {
 		struct cfg_kw_list *kwl;
 		int index;
+		int rc;
 
 		list_for_each_entry(kwl, &cfg_keywords.list, list) {
 			for (index = 0; kwl->kw[index].kw != NULL; index++) {
@@ -510,10 +511,15 @@
 					/* prepare error message just in case */
 					snprintf(trash, sizeof(trash),
 						 "error near '%s' in '%s' section", args[0], "global");
-					if (kwl->kw[index].parse(args, CFG_GLOBAL, NULL, NULL, trash, sizeof(trash)) < 0) {
+					rc = kwl->kw[index].parse(args, CFG_GLOBAL, NULL, NULL, trash, sizeof(trash));
+					if (rc < 0) {
 						Alert("parsing [%s:%d] : %s\n", file, linenum, trash);
 						return -1;
 					}
+					else if (rc > 0) {
+						Warning("parsing [%s:%d] : %s\n", file, linenum, trash);
+						return 0;
+					}
 					return 0;
 				}
 			}
@@ -2680,10 +2686,15 @@
 					/* prepare error message just in case */
 					snprintf(trash, sizeof(trash),
 						 "error near '%s' in %s section", args[0], cursection);
-					if (kwl->kw[index].parse(args, CFG_LISTEN, curproxy, &defproxy, trash, sizeof(trash)) < 0) {
+					rc = kwl->kw[index].parse(args, CFG_LISTEN, curproxy, &defproxy, trash, sizeof(trash));
+					if (rc < 0) {
 						Alert("parsing [%s:%d] : %s\n", file, linenum, trash);
 						return -1;
 					}
+					else if (rc > 0) {
+						Warning("parsing [%s:%d] : %s\n", file, linenum, trash);
+						return 0;
+					}
 					return 0;
 				}
 			}
