diff --git a/src/protocols.c b/src/protocols.c
index 49e7eaa..7d8913d 100644
--- a/src/protocols.c
+++ b/src/protocols.c
@@ -106,6 +106,17 @@
 	return 1;
 }
 
+/* Marks a ready listener as full so that the session code tries to re-enable
+ * it upon next close() using resume_listener().
+ */
+void listener_full(struct listener *l)
+{
+	if (l->state >= LI_READY) {
+		EV_FD_CLR(l->fd, DIR_RD);
+		l->state = LI_FULL;
+	}
+}
+
 /* This function adds all of the protocol's listener's file descriptors to the
  * polling lists when they are in the LI_LISTEN state. It is intended to be
  * used as a protocol's generic enable_all() primitive, for use after the
diff --git a/src/session.c b/src/session.c
index e5ac4ee..6e718c0 100644
--- a/src/session.c
+++ b/src/session.c
@@ -32,6 +32,7 @@
 #include <proto/log.h>
 #include <proto/session.h>
 #include <proto/pipe.h>
+#include <proto/protocols.h>
 #include <proto/proto_http.h>
 #include <proto/proto_tcp.h>
 #include <proto/proxy.h>
@@ -2088,12 +2089,8 @@
 	actconn--;
 	jobs--;
 	s->listener->nbconn--;
-	if (s->listener->state == LI_FULL &&
-	    s->listener->nbconn < s->listener->maxconn) {
-		/* we should reactivate the listener */
-		EV_FD_SET(s->listener->fd, DIR_RD);
-		s->listener->state = LI_READY;
-	}
+	if (s->listener->state == LI_FULL)
+		resume_listener(s->listener);
 
 	if (unlikely((global.mode & MODE_DEBUG) &&
 		     (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)))) {
diff --git a/src/stream_sock.c b/src/stream_sock.c
index c5cd1e5..10e13cb 100644
--- a/src/stream_sock.c
+++ b/src/stream_sock.c
@@ -1194,8 +1194,7 @@
 	int ret;
 
 	if (unlikely(l->nbconn >= l->maxconn)) {
-		EV_FD_CLR(l->fd, DIR_RD);
-		l->state = LI_FULL;
+		listener_full(l);
 		return 0;
 	}
 
@@ -1221,20 +1220,16 @@
 					send_log(p, LOG_EMERG,
 						 "Proxy %s reached system FD limit at %d. Please check system tunables.\n",
 						 p->id, maxfd);
-				if (l->nbconn) {
-					EV_FD_CLR(l->fd, DIR_RD);
-					l->state = LI_FULL;
-				}
+				if (l->nbconn)
+					listener_full(l);
 				return 0;
 			case EMFILE:
 				if (p)
 					send_log(p, LOG_EMERG,
 						 "Proxy %s reached process FD limit at %d. Please check 'ulimit-n' and restart.\n",
 						 p->id, maxfd);
-				if (l->nbconn) {
-					EV_FD_CLR(l->fd, DIR_RD);
-					l->state = LI_FULL;
-				}
+				if (l->nbconn)
+					listener_full(l);
 				return 0;
 			case ENOBUFS:
 			case ENOMEM:
@@ -1242,10 +1237,8 @@
 					send_log(p, LOG_EMERG,
 						 "Proxy %s reached system memory limit at %d sockets. Please check system tunables.\n",
 						 p->id, maxfd);
-				if (l->nbconn) {
-					EV_FD_CLR(l->fd, DIR_RD);
-					l->state = LI_FULL;
-				}
+				if (l->nbconn)
+					listener_full(l);
 				return 0;
 			default:
 				return 0;
@@ -1291,10 +1284,10 @@
 		}
 
 		if (l->nbconn >= l->maxconn) {
-			EV_FD_CLR(l->fd, DIR_RD);
-			l->state = LI_FULL;
+			listener_full(l);
 			return 0;
 		}
+
 	} /* end of while (p->feconn < p->maxconn) */
 	return 0;
 }
