diff --git a/CHANGES b/CHANGES
index b274004590355c7a299f1c3ea86d0883cd4af58b..eceffd88f5e48432faa3672022ddae355de4c2f1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -40,6 +40,7 @@ OpenLDAP 2.4.13 Engineering
 	Fixed slapd-bdb/hdb indexing of entryDN (ITS#5790)
 	Fixed slapd-bdb/hdb lookup of entryDN with equality (ITS#5791)
 	Fixed slapd-ldap snprintf buffer overflow test (ITS#4467)
+	Fixed slapd-ldap search stop on minor failure (ITS#5816)
 	Fixed slapd-ldif file rename on windows (ITS#5774)
 	Fixed slapd-null read controls support (ITS#5757)
 	Fixed slapd-sql value length with right index (ITS#5779)
diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c
index bcc843f1ebb5f28524ddc2fa49a99be398fac1f9..08a56920615ed65b3fa5511f3558197ff26bccbb 100644
--- a/servers/slapd/back-ldap/search.c
+++ b/servers/slapd/back-ldap/search.c
@@ -360,7 +360,12 @@ retry:
 				entry_clean( &ent );
 			}
 			ldap_msgfree( res );
-			if ( rc != LDAP_SUCCESS ) {
+			switch ( rc ) {
+			case LDAP_SUCCESS:
+			case LDAP_INSUFFICIENT_ACCESS:
+				break;
+
+			default:
 				if ( rc == LDAP_UNAVAILABLE ) {
 					rc = rs->sr_err = LDAP_OTHER;
 				} else {