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);
