diff --git a/include/proto/fd.h b/include/proto/fd.h
index e72c43f..127cbe0 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -130,8 +130,6 @@
  */
 static inline int fd_ev_is_set(const int fd, int dir)
 {
-	if (cur_poller.is_set)
-		return cur_poller.is_set(fd, dir);
 	return ((unsigned)fdtab[fd].spec_e >> dir) & FD_EV_STATUS;
 }
 
@@ -189,50 +187,36 @@
 /* event manipulation primitives for use by I/O callbacks */
 static inline void fd_want_recv(int fd)
 {
-	if (cur_poller.set)
-		return cur_poller.set(fd, DIR_RD);
 	return fd_ev_set(fd, DIR_RD);
 }
 
 static inline void fd_stop_recv(int fd)
 {
-	if (cur_poller.clr)
-		return cur_poller.clr(fd, DIR_RD);
 	return fd_ev_clr(fd, DIR_RD);
 }
 
 static inline void fd_poll_recv(int fd)
 {
-	if (cur_poller.wai)
-		return cur_poller.wai(fd, DIR_RD);
 	return fd_ev_wai(fd, DIR_RD);
 }
 
 static inline void fd_want_send(int fd)
 {
-	if (cur_poller.set)
-		return cur_poller.set(fd, DIR_WR);
 	return fd_ev_set(fd, DIR_WR);
 }
 
 static inline void fd_stop_send(int fd)
 {
-	if (cur_poller.clr)
-		return cur_poller.clr(fd, DIR_WR);
 	return fd_ev_clr(fd, DIR_WR);
 }
 
 static inline void fd_poll_send(int fd)
 {
-	if (cur_poller.wai)
-		return cur_poller.wai(fd, DIR_WR);
 	return fd_ev_wai(fd, DIR_WR);
 }
 
 static inline void fd_stop_both(int fd)
 {
-	if (cur_poller.rem)
-		return cur_poller.rem(fd);
 	return fd_ev_rem(fd);
 }
 
diff --git a/include/types/fd.h b/include/types/fd.h
index fab0c6c..56a8c5c 100644
--- a/include/types/fd.h
+++ b/include/types/fd.h
@@ -92,18 +92,12 @@
  *    poller should set it to 100.
  *  - <private> is initialized by the poller's init() function, and cleaned by
  *    the term() function.
- *  - clo() should be used to do indicate the poller that fd will be closed. It
- *    may be the same as rem() on some pollers.
+ *  - clo() should be used to do indicate the poller that fd will be closed.
  *  - poll() calls the poller, expiring at <exp>
  */
 struct poller {
 	void   *private;                                     /* any private data for the poller */
-	int  REGPRM2 (*is_set)(const int fd, int dir);       /* check if <fd> is being polled for dir <dir> */
-	void REGPRM2    (*set)(const int fd, int dir);       /* set   polling on <fd> for <dir> */
-	void REGPRM2    (*clr)(const int fd, int dir);       /* clear polling on <fd> for <dir> */
-	void REGPRM2    (*wai)(const int fd, int dir);       /* wait for polling on <fd> for <dir> */
-	void REGPRM1    (*rem)(const int fd);                /* remove any polling on <fd> */
-	void REGPRM1    (*clo)(const int fd);                /* mark <fd> as closed */
+	void REGPRM1   (*clo)(const int fd);                 /* mark <fd> as closed */
     	void REGPRM2   (*poll)(struct poller *p, int exp);   /* the poller itself */
 	int  REGPRM1   (*init)(struct poller *p);            /* poller initialization */
 	void REGPRM1   (*term)(struct poller *p);            /* termination of this poller */
