diff --git a/include/common/cfgparse.h b/include/common/cfgparse.h
index bba18cf..c5777f9 100644
--- a/include/common/cfgparse.h
+++ b/include/common/cfgparse.h
@@ -2,7 +2,7 @@
   include/common/cfgparse.h
   Configuration parsing functions.
 
-  Copyright (C) 2000-2006 Willy Tarreau - w@1wt.eu
+  Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
   
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -22,20 +22,47 @@
 #ifndef _COMMON_CFGPARSE_H
 #define _COMMON_CFGPARSE_H
 
+#include <common/compat.h>
 #include <common/config.h>
+#include <common/mini-clist.h>
+
+#include <types/proxy.h>
 
 /* configuration sections */
 #define CFG_NONE	0
 #define CFG_GLOBAL	1
 #define CFG_LISTEN	2
 
+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 section_type,          /* current section CFG_{GLOBAL|LISTEN} */
+		     struct proxy *curpx,       /* current proxy (NULL in GLOBAL) */
+		     struct proxy *defpx,       /* default proxy (NULL in GLOBAL) */
+		     char *err,                 /* error message buffer (do not add '\n') */
+		     int errlen);               /* error buffer size, '\0' included */
+};
+
+/* A keyword list. It is a NULL-terminated array of keywords. It embeds a
+ * struct list in order to be linked to other lists, allowing it to easily
+ * be declared where it is needed, and linked without duplicating data nor
+ * allocating memory.
+ */
+struct cfg_kw_list {
+	struct list list;
+	struct cfg_keyword kw[VAR_ARRAY];
+};
+
+
 extern int cfg_maxpconn;
 extern int cfg_maxconn;
 
 int cfg_parse_global(const char *file, int linenum, char **args, int inv);
 int cfg_parse_listen(const char *file, int linenum, char **args, int inv);
 int readcfgfile(const char *file);
-
+void cfg_register_keywords(struct cfg_kw_list *kwl);
+void cfg_unregister_keywords(struct cfg_kw_list *kwl);
 
 #endif /* _COMMON_CFGPARSE_H */
 
