diff --git a/include/common/cfgparse.h b/include/common/cfgparse.h
index 591f172..e21c4c5 100644
--- a/include/common/cfgparse.h
+++ b/include/common/cfgparse.h
@@ -32,9 +32,9 @@
 extern int cfg_maxpconn;
 extern int cfg_maxconn;
 
-int cfg_parse_global(char *file, int linenum, char **args);
-int cfg_parse_listen(char *file, int linenum, char **args);
-int readcfgfile(char *file);
+int cfg_parse_global(const char *file, int linenum, char **args);
+int cfg_parse_listen(const char *file, int linenum, char **args);
+int readcfgfile(const char *file);
 
 
 #endif /* _COMMON_CFGPARSE_H */
diff --git a/include/common/regex.h b/include/common/regex.h
index 05eae6b..bf51a0d 100644
--- a/include/common/regex.h
+++ b/include/common/regex.h
@@ -41,16 +41,17 @@
 
 struct hdr_exp {
     struct hdr_exp *next;
-    regex_t *preg;			/* expression to look for */
+    const regex_t *preg;		/* expression to look for */
     int action;				/* ACT_ALLOW, ACT_REPLACE, ACT_REMOVE, ACT_DENY */
-    char *replace;			/* expression to set instead */
+    const char *replace;		/* expression to set instead */
 };
 
 extern regmatch_t pmatch[MAX_MATCH];
 
-int exp_replace(char *dst, char *src, char *str, regmatch_t *matches);
-char *check_replace_string(char *str);
-char *chain_regex(struct hdr_exp **head, regex_t *preg, int action, char *replace);
+int exp_replace(char *dst, char *src, const char *str,	const regmatch_t *matches);
+const char *check_replace_string(const char *str);
+const char *chain_regex(struct hdr_exp **head, const regex_t *preg,
+			int action, const char *replace);
 
 #endif /* _COMMON_REGEX_H */
 
diff --git a/include/common/time.h b/include/common/time.h
index 7661aac..7a68a15 100644
--- a/include/common/time.h
+++ b/include/common/time.h
@@ -39,31 +39,31 @@
 /*
  * adds <ms> ms to <from>, set the result to <tv> and returns a pointer <tv>
  */
-struct timeval *tv_delayfrom(struct timeval *tv, struct timeval *from, int ms);
+struct timeval *tv_delayfrom(struct timeval *tv, const struct timeval *from, int ms);
 
 /*
  * compares <tv1> and <tv2> modulo 1ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2
  * Must not be used when either argument is eternity. Use tv_cmp2_ms() for that.
  */
-int tv_cmp_ms(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp_ms(const struct timeval *tv1, const struct timeval *tv2);
 
 /*
  * compares <tv1> and <tv2> : returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp2(const struct timeval *tv1, const struct timeval *tv2);
 /*
  * compares <tv1> and <tv2> modulo 1 ms: returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2,
  * considering that 0 is the eternity.
  */
-int tv_cmp2_ms(struct timeval *tv1, struct timeval *tv2);
+int tv_cmp2_ms(const struct timeval *tv1, const struct timeval *tv2);
 
 /*
  * returns the remaining time between tv1=now and event=tv2
  * if tv2 is passed, 0 is returned.
  * Returns TIME_ETERNITY if tv2 is eternity.
  */
-unsigned long tv_remain2(struct timeval *tv1, struct timeval *tv2);
+unsigned long tv_remain2(const struct timeval *tv1, const struct timeval *tv2);
 
 
 /* sets <tv> to the current time */
@@ -78,7 +78,7 @@
  * compares <tv1> and <tv2> : returns 0 if equal, -1 if tv1 < tv2, 1 if tv1 > tv2
  * Must not be used when either argument is eternity. Use tv_cmp2() for that.
  */
-static inline int tv_cmp(struct timeval *tv1, struct timeval *tv2)
+static inline int tv_cmp(const struct timeval *tv1, const struct timeval *tv2)
 {
 	if (tv1->tv_sec < tv2->tv_sec)
 		return -1;
@@ -96,7 +96,7 @@
  * returns the difference, in ms, between tv1 and tv2
  * Must not be used when either argument is eternity.
  */
-static inline unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2)
+static inline unsigned long tv_diff(const struct timeval *tv1, const struct timeval *tv2)
 {
 	unsigned long ret;
   
@@ -113,7 +113,7 @@
  * if tv2 is passed, 0 is returned.
  * Must not be used when either argument is eternity.
  */
-static inline unsigned long tv_remain(struct timeval *tv1, struct timeval *tv2)
+static inline unsigned long tv_remain(const struct timeval *tv1, const struct timeval *tv2)
 {
 	unsigned long ret;
   
@@ -142,7 +142,7 @@
 /*
  * returns 1 if tv is null, else 0
  */
-static inline int tv_iseternity(struct timeval *tv)
+static inline int tv_iseternity(const struct timeval *tv)
 {
 	if (tv->tv_sec == 0 && tv->tv_usec == 0)
 		return 1;
@@ -154,8 +154,9 @@
  * returns the first event between tv1 and tv2 into tvmin.
  * a zero tv is ignored. tvmin is returned.
  */
-static inline struct timeval *tv_min(struct timeval *tvmin,
-				     struct timeval *tv1, struct timeval *tv2)
+static inline const struct timeval *tv_min(struct timeval *tvmin,
+				     const struct timeval *tv1,
+				     const struct timeval *tv2)
 {
 
 	if (tv_cmp2(tv1, tv2) <= 0)
diff --git a/include/proto/backend.h b/include/proto/backend.h
index cc25a6f..b4c641e 100644
--- a/include/proto/backend.h
+++ b/include/proto/backend.h
@@ -97,7 +97,8 @@
  * If any server is found, it will be returned. If no valid server is found,
  * NULL is returned.
  */
-static inline struct server *get_server_sh(struct proxy *px, char *addr, int len)
+static inline struct server *get_server_sh(const struct proxy *px,
+					   const char *addr, int len)
 {
 	unsigned int h, l;
 
diff --git a/include/proto/buffers.h b/include/proto/buffers.h
index 6dbc956..a5ad208 100644
--- a/include/proto/buffers.h
+++ b/include/proto/buffers.h
@@ -36,13 +36,13 @@
 }
 
 /* returns 1 if the buffer is empty, 0 otherwise */
-static inline int buffer_isempty(struct buffer *buf)
+static inline int buffer_isempty(const struct buffer *buf)
 {
 	return buf->l == 0;
 }
 
 /* returns 1 if the buffer is full, 0 otherwise */
-static inline int buffer_isfull(struct buffer *buf) {
+static inline int buffer_isfull(const struct buffer *buf) {
 	return buf->l == BUFSIZE;
 }
 
@@ -55,7 +55,7 @@
 
 
 /* returns the maximum number of bytes writable at once in this buffer */
-static inline int buffer_max(struct buffer *buf)
+static inline int buffer_max(const struct buffer *buf)
 {
 	if (buf->l == BUFSIZE)
 		return 0;
diff --git a/include/proto/proto_http.h b/include/proto/proto_http.h
index 205b0ee..0005bf7 100644
--- a/include/proto/proto_http.h
+++ b/include/proto/proto_http.h
@@ -36,7 +36,7 @@
 void client_retnclose(struct session *s, int len, const char *msg);
 void client_return(struct session *s, int len, const char *msg);
 void srv_close_with_err(struct session *t, int err, int finst,
-			int status, int msglen, char *msg);
+			int status, int msglen, const char *msg);
 
 int produce_content(struct session *s);
 
diff --git a/include/proto/queue.h b/include/proto/queue.h
index 6732ba9..c113f03 100644
--- a/include/proto/queue.h
+++ b/include/proto/queue.h
@@ -36,14 +36,14 @@
 struct pendconn *pendconn_add(struct session *sess);
 void pendconn_free(struct pendconn *p);
 int process_srv_queue(struct task *t);
-unsigned int srv_dynamic_maxconn(struct server *s);
+unsigned int srv_dynamic_maxconn(const struct server *s);
 
 
 
 /* Returns the first pending connection for server <s>, which may be NULL if
  * nothing is pending.
  */
-static inline struct pendconn *pendconn_from_srv(struct server *s) {
+static inline struct pendconn *pendconn_from_srv(const struct server *s) {
 	if (!s->nbpend)
 		return NULL;
 
@@ -53,7 +53,7 @@
 /* Returns the first pending connection for proxy <px>, which may be NULL if
  * nothing is pending.
  */
-static inline struct pendconn *pendconn_from_px(struct proxy *px) {
+static inline struct pendconn *pendconn_from_px(const struct proxy *px) {
 	if (!px->nbpend)
 		return NULL;
 
@@ -63,7 +63,7 @@
 /* returns 0 if nothing has to be done for server <s> regarding queued connections,
  * and non-zero otherwise. Suited for and if/else usage.
  */
-static inline int may_dequeue_tasks(struct server *s, struct proxy *p) {
+static inline int may_dequeue_tasks(const struct server *s, const struct proxy *p) {
 	return (s && (s->nbpend || p->nbpend) &&
 		(!s->maxconn || s->cur_sess < srv_dynamic_maxconn(s)) &&
 		s->queue_mgt);
