diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
index abbf69168ad3710e5eec9c08ac26c5eb0ed45abb..dc186d4b2a9dd62358c2a32a3a9cb9539a3b6ce7 100644
--- a/servers/slapd/daemon.c
+++ b/servers/slapd/daemon.c
@@ -359,7 +359,8 @@ slapd_daemon_task(
 		switch(ns = select( nfds, &readfds, &writefds, 0, tvp )) {
 		case -1: {	/* failure - try again */
 				int err = errno;
-				if( err != EINTR ) {
+
+				if( err != EINTR || err == EBADF) {
 					Debug( LDAP_DEBUG_CONNS,
 						"daemon: select failed (%d): %s\n",
 						err,