diff --git a/CHANGES b/CHANGES
index 3c662de1d8eced07df8ee134fb7261f4f7c91902..b371d1f4e0027f7d9833a396eacfcdae8bffc7d3 100644
--- a/CHANGES
+++ b/CHANGES
@@ -39,6 +39,7 @@ OpenLDAP 2.4.14 Engineering
 	Fixed slapd-ldap idassert-bind validity checking (ITS#5863)
 	Fixed slapd-ldap/meta RFC4525 increment support (ITS#5912)
 	Fixed slapd-ldap/meta search dereferencing (ITS#5916)
+	Fixed slapd-ldap/meta with intermediate response (ITS#5931)
 	Fixed slapd-ldif numerous bugs (ITS#5408)
 	Fixed slapd-ldif rename on same DN (ITS#5319)
 	Fixed slapd-ldif deadlock (ITS#5329)
diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c
index a3718aca4c02d83829e413f9254faacec0f2b7fe..e9788e2fbed78fe8c85f6aa6188cf7b425495edc 100644
--- a/servers/slapd/back-ldap/search.c
+++ b/servers/slapd/back-ldap/search.c
@@ -423,6 +423,12 @@ retry:
 				rs->sr_ctrls = NULL;
 			}
 
+		} else if ( rc == LDAP_RES_INTERMEDIATE ) {
+			Debug( LDAP_DEBUG_ANY,
+				"%s ldap_back_search: "
+				"intermediate response not supported yet.\n",
+				op->o_log_prefix, 0, 0 );
+
 		} else {
 			char		*err = NULL;
 
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index 6f237ea08ec3c06068e22a56b972d61fa688b874..5e96995b360bf6b4868b316da1d1ae8e8939e7d4 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -1411,6 +1411,16 @@ really_bad:;
 					 */
 					assert( ncandidates > 0 );
 					--ncandidates;
+
+				} else if ( rc == LDAP_RES_INTERMEDIATE ) {
+					/* TODO: ITS#5931 */
+
+					/* ignore right now */
+					Debug( LDAP_DEBUG_ANY,
+						"%s meta_back_search[%ld]: "
+						"intermediate response message not supported yet.\n",
+						op->o_log_prefix,
+						i, 0 );
 	
 				} else if ( rc == LDAP_RES_BIND ) {
 					meta_search_candidate_t	retcode;
@@ -1450,7 +1460,12 @@ really_bad:;
 					}
 	
 				} else {
-					assert( 0 );
+					Debug( LDAP_DEBUG_ANY,
+						"%s meta_back_search[%ld]: "
+						"unrecognized response message tag=%d\n",
+						op->o_log_prefix,
+						i, rc );
+				
 					ldap_msgfree( res );
 					res = NULL;
 					goto really_bad;