diff --git a/include/proto/connection.h b/include/proto/connection.h
index 7060046..ecba6dd 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -110,7 +110,7 @@
 
 		fdtab[fd].owner = conn;
 		fdtab[fd].iocb = conn_fd_handler;
-		fd_insert(fd);
+		fd_insert(fd, tid_bit);
 		/* mark the fd as ready so as not to needlessly poll at the beginning */
 		fd_may_recv(fd);
 		fd_may_send(fd);
diff --git a/include/proto/fd.h b/include/proto/fd.h
index 465d660..72af70f 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -395,7 +395,7 @@
 }
 
 /* Prepares <fd> for being polled */
-static inline void fd_insert(int fd)
+static inline void fd_insert(int fd, unsigned long thread_mask)
 {
 	SPIN_LOCK(FD_LOCK, &fdtab[fd].lock);
 	fdtab[fd].ev = 0;
@@ -404,7 +404,7 @@
 	fdtab[fd].linger_risk = 0;
 	fdtab[fd].cloned = 0;
 	fdtab[fd].cache = 0;
-	fdtab[fd].process_mask = 0; // unused for now
+	fdtab[fd].process_mask = thread_mask;
 	SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
 
 	SPIN_LOCK(FDTAB_LOCK, &fdtab_lock);
diff --git a/src/dns.c b/src/dns.c
index 2d684b0..c2b87c0 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -193,7 +193,7 @@
 	dgram->t.sock.fd = fd;
 	fdtab[fd].owner  = dgram;
 	fdtab[fd].iocb   = dgram_fd_handler;
-	fd_insert(fd);
+	fd_insert(fd, (unsigned long)-1);
 	fd_want_recv(fd);
 	return 0;
 }
diff --git a/src/haproxy.c b/src/haproxy.c
index 7f48514..170b002 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2228,7 +2228,7 @@
 	fcntl(mworker_pipe[0], F_SETFL, O_NONBLOCK);
 	fdtab[mworker_pipe[0]].owner = mworker_pipe;
 	fdtab[mworker_pipe[0]].iocb = mworker_pipe_handler;
-	fd_insert(mworker_pipe[0]);
+	fd_insert(mworker_pipe[0], MAX_THREADS_MASK);
 	fd_want_recv(mworker_pipe[0]);
 }
 
diff --git a/src/hathreads.c b/src/hathreads.c
index 4c795b1..470ee02 100644
--- a/src/hathreads.c
+++ b/src/hathreads.c
@@ -50,7 +50,7 @@
 
 	fdtab[rfd].owner = NULL;
 	fdtab[rfd].iocb = thread_sync_io_handler;
-	fd_insert(rfd);
+	fd_insert(rfd, MAX_THREADS_MASK);
 
 	all_threads_mask = mask;
 	return 0;
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index b43fdef..1a26bcc 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1107,7 +1107,7 @@
 
 	fdtab[fd].owner = listener; /* reference the listener instead of a task */
 	fdtab[fd].iocb = listener->proto->accept;
-	fd_insert(fd);
+	fd_insert(fd, MAX_THREADS_MASK);
 
  tcp_return:
 	if (msg && errlen) {
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 4210f5d..fc4a519 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -332,9 +332,9 @@
 	listener->state = LI_LISTEN;
 
 	/* the function for the accept() event */
-	fd_insert(fd);
 	fdtab[fd].iocb = listener->proto->accept;
 	fdtab[fd].owner = listener; /* reference the listener instead of a task */
+	fd_insert(fd, MAX_THREADS_MASK);
 	return err;
 
  err_rename:
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 68f5d25..ca9647d 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -459,7 +459,7 @@
 		afd = add_fd[i];
 		fdtab[afd].owner = conn;
 		fdtab[afd].iocb = ssl_async_fd_handler;
-		fd_insert(afd);
+		fd_insert(afd, tid_bit);
 	}
 
 	num_add_fds = 0;
