diff --git a/include/proto/fd.h b/include/proto/fd.h
index a67a320..3563a08 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -97,11 +97,11 @@
 /* allocate an entry for a speculative event. This can be done at any time. */
 static inline void alloc_spec_entry(const int fd)
 {
-	if (fdtab[fd].spec_p)
+	if (fdtab[fd].cache)
 		/* FD already in speculative I/O list */
 		return;
 	fd_nbspec++;
-	fdtab[fd].spec_p = fd_nbspec;
+	fdtab[fd].cache = fd_nbspec;
 	fd_spec[fd_nbspec-1] = fd;
 }
 
@@ -113,16 +113,16 @@
 {
 	unsigned int pos;
 
-	pos = fdtab[fd].spec_p;
+	pos = fdtab[fd].cache;
 	if (!pos)
 		return;
-	fdtab[fd].spec_p = 0;
+	fdtab[fd].cache = 0;
 	fd_nbspec--;
 	if (likely(pos <= fd_nbspec)) {
 		/* was not the last entry */
 		fd = fd_spec[fd_nbspec];
 		fd_spec[pos - 1] = fd;
-		fdtab[fd].spec_p = pos;
+		fdtab[fd].cache = pos;
 	}
 }
 
diff --git a/include/types/fd.h b/include/types/fd.h
index 23550cb..3bfe48f 100644
--- a/include/types/fd.h
+++ b/include/types/fd.h
@@ -69,8 +69,8 @@
 struct fdtab {
 	int (*iocb)(int fd);                 /* I/O handler, returns FD_WAIT_* */
 	void *owner;                         /* the connection or listener associated with this fd, NULL if closed */
-	unsigned int  spec_p;                /* speculative polling: position in spec list+1. 0=not in list. */
-	unsigned char state;                 /* FD state for read and write directions */
+	unsigned int  cache;                 /* position+1 in the FD cache. 0=not in cache. */
+	unsigned char state;                 /* FD state for read and write directions (4+4 bits) */
 	unsigned char ev;                    /* event seen in return of poll() : FD_POLL_* */
 	unsigned char new:1;                 /* 1 if this fd has just been created */
 	unsigned char updated:1;             /* 1 if this fd is already in the update list */
