diff --git a/CHANGES b/CHANGES
index a52ea58741a3d88393e5c705f1b214ee769becfc..2fddebba7fcdaf7d9ef6973f6de5e5eda8eb1884 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,7 @@ OpenLDAP 2.3.35 Engineering
 	Fixed slapd-meta search cleanup
 	Fixed slapd-meta/slapo-rwm filter mapping
 	Fixed slapd-sql subtree shortcut (ITS#4856)
+	Fixed slapo-dynlist crasher (ITS#4891)
 	Fixed slapo-refint config message (ITS#4853)
 	Fixed libldap time_t signedness (ITS#4872)
 	Fixed libldap_r tpool reset (ITS#4855)
diff --git a/servers/slapd/overlays/dynlist.c b/servers/slapd/overlays/dynlist.c
index 239cc7e05974bbe7bff1fbaf525f16a56bd278e7..f99e00ebd0935800f8c3ab4303b4b19265087276 100644
--- a/servers/slapd/overlays/dynlist.c
+++ b/servers/slapd/overlays/dynlist.c
@@ -480,7 +480,8 @@ cleanup:;
 		if ( !BER_BVISNULL( &o.o_req_ndn ) ) {
 			op->o_tmpfree( o.o_req_ndn.bv_val, op->o_tmpmemctx );
 		}
-		assert( o.ors_filterstr.bv_val != lud->lud_filter );
+		assert( BER_BVISNULL( &o.ors_filterstr )
+			|| o.ors_filterstr.bv_val != lud->lud_filter );
 		op->o_tmpfree( o.ors_filterstr.bv_val, op->o_tmpmemctx );
 		ldap_free_urldesc( lud );
 	}