Index: curl/lib/splay.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/splay.c,v
retrieving revision 1.3
diff -r1.3 splay.c
83d82
<   l->larger = r->smaller = NULL;
116a116
> 
272a273,275
>     if (remove->smaller == NULL)
>       return 3;
> 
275a279,282
> 
>     /* Ensures that double-remove gets caught. */
>     remove->smaller = NULL;
> 
283,286c290,297
<   /* First make sure that we got a root node witht he same key as the one we
<      want to remove, as otherwise we might be trying to remove a node that
<      isn't actually in the tree. */
<   if(t->key != remove->key)
---
>   /* First make sure that we got the same root node as the one we want
>      to remove, as otherwise we might be trying to remove a node that
>      isn't actually in the tree.
> 
>      We cannot just compare the keys here as a double remove in quick
>      succession of a node with key != KEY_NOTUSED && same != NULL
>      could return the same key but a different node. */
>   if(t != remove)
