* released 1.1.10
* if a cookie is used in insert+indirect mode, it's desirable that the
  the servers don't see it. It was not possible to remove it correctly
  with regexps, so now it's removed automatically.
diff --git a/NOTES b/NOTES
index ce994f7..13b19ba 100644
--- a/NOTES
+++ b/NOTES
@@ -16,12 +16,6 @@
   - differentiate http headers and http uris
   - support environment variables in config file
   - support keep-alive
-
---- Notes about cookie usage ---
-
-Cookie insertion is done at the end of server response.
-Cookie matching is done after header replacement, but before
-header deletion. This means that it's perfectly possible to
-delete an inserted cookie once it has been matched, so that
-the server never knows about it.
+1.1.9 -> 1.1.10
+  - automatically remove client cookie in insert+indirect mode
 
diff --git a/doc/haproxy.txt b/doc/haproxy.txt
index a86c921..36c3c99 100644
--- a/doc/haproxy.txt
+++ b/doc/haproxy.txt
@@ -1,9 +1,9 @@
 
          		     H A - P r o x y
          		     ---------------
-         		      version 1.1.9
+         		      version 1.1.10
 			      willy tarreau
-			       2002/05/02
+			       2002/05/10
 
 ================
 | Introduction |
@@ -455,12 +455,14 @@
 
 	cookie SERVERID insert
 
-Remarque :
-----------
-Il est possible de combiner 'insert' avec 'indirect' ou 'rewrite' pour s'adapter
-à des applications générant déjà le cookie, avec un contenu invalide. Il suffit
-pour cela de les spécifier sur la même ligne.
-
+Remarques :
+-----------
+- Il est possible de combiner 'insert' avec 'indirect' ou 'rewrite' pour s'adapter
+  à des applications générant déjà le cookie, avec un contenu invalide. Il suffit
+  pour cela de les spécifier sur la même ligne.
+- dans le cas où 'insert' et 'indirect' sont spécifiés, le cookie n'est jamais
+  transmis au serveur vu qu'il n'en a pas connaissance et ne pourrait pas le
+  comprendre.
 
 2.9) Assignation d'un serveur à une valeur de cookie
 ----------------------------------------------------
@@ -533,7 +535,8 @@
 	server web1 192.168.1.1:80 cookie server01 check
 	server web2 192.168.1.2:80 cookie server02 check inter 500 rise 1 fall 2
 
-# insertion automatique de cookie dans la réponse du serveur
+# Insertion automatique de cookie dans la réponse du serveur, et suppression
+# automatique dans la requête.
     listen web_appl 0.0.0.0:80
 	mode http
 	cookie SERVERID insert indirect
@@ -728,9 +731,9 @@
 La combinaison de l'insertion de cookie avec la répartition de charge interne
 permet d'assurer une persistence dans les sessions HTTP d'une manière
 pratiquement transparente pour les applications. Le principe est simple :
-  - assigner un cookie à chaque serveur
+  - attribuer une valeur d'un cookie à chaque serveur
   - effectuer une répartition interne
-  - insérer un cookie dans les réponses issues d'une répartition
+  - insérer un cookie dans les réponses issues d'une répartition uniquement
   - cacher ce cookie à l'application
 
 Exemple :
@@ -741,7 +744,6 @@
 	balance roundrobin
 	server 192.168.1.1:80 cookie server01 check
 	server 192.168.1.2:80 cookie server02 check
-	reqidel ^Cookie:\ SERVERID=
 
 =======================
 | Paramétrage système |
diff --git a/examples/cfg b/examples/cfg
index 96d5ba5..b3bff69 100644
--- a/examples/cfg
+++ b/examples/cfg
@@ -62,7 +62,7 @@
 	option httplog
 	option dontlognull
 #	reqirep ^(Test:\ ) \0_toto_\1_toto
-#	reqidel ^Cookie:\ SERVERID=
+#	reqidel ^X-Forwarded-for:
 #	reqirep ^(GET|POST)\ .* \0
 #	reqirep ^(Host:|Connection:|User-agent:|Cookie:)\ .* \0
 #	reqideny ^
diff --git a/haproxy.c b/haproxy.c
index 67df4b1..9ab37b1 100644
--- a/haproxy.c
+++ b/haproxy.c
@@ -17,6 +17,10 @@
  *
  * ChangeLog :
  *
+ * 2002/05/10 : 1.1.10
+ *   - if a cookie is used in insert+indirect mode, it's desirable that the
+ *     the servers don't see it. It was not possible to remove it correctly
+ *     with regexps, so now it's removed automatically.
  * 2002/04/19 : 1.1.9
  *   - don't use snprintf()'s return value as an end of message since it may
  *     be larger. This caused bus errors and segfaults in internal libc's
@@ -2300,6 +2304,11 @@
 			if (srv) { /* we found the server */
 			    t->flags |= SN_DIRECT;
 			    t->srv = srv;
+			    /* if this cookie was set in insert+indirect mode, then it's better that the
+			     * server never sees it.
+			     */
+			    if ((t->proxy->options & (PR_O_COOK_INS | PR_O_COOK_IND)) == (PR_O_COOK_INS | PR_O_COOK_IND))
+				delete_header = 1;
 			}
 
 			break;