Index: openldap-2.4.42+dfsg/servers/slapd/overlays/unique.c
===================================================================
--- openldap-2.4.42+dfsg.orig/servers/slapd/overlays/unique.c
+++ openldap-2.4.42+dfsg/servers/slapd/overlays/unique.c
@@ -1203,6 +1203,28 @@ unique_modify(
 			     && !dnIsSuffix( &op->o_req_ndn, &uri->ndn ))
 				continue;
 
+			if ( uri->f) {
+				int rc;
+				Entry *e;
+				int skip = 0;
+
+				op->o_bd->bd_info = (BackendInfo *)on->on_info;
+				rc = be_entry_get_rw( op, &op->o_req_ndn, NULL, NULL, 0, &e );
+				if ( e ) {
+					if ( test_filter( NULL, e, uri->f )
+						== LDAP_COMPARE_FALSE )
+						skip = 1;
+					be_entry_release_rw( op, e, 0 );
+				}
+				op->o_bd->bd_info = (BackendInfo *)on;
+				if( skip ) {
+					Debug( LDAP_DEBUG_TRACE,
+						"==> unique_modify_skip<%s>\n",
+						op->o_req_dn.bv_val, 0, 0 );
+					continue;
+				}
+			}
+
 			if ( !(m = op->orm_modlist) ) {
 				op->o_bd->bd_info = (BackendInfo *) on->on_info;
 				send_ldap_error(op, rs, LDAP_INVALID_SYNTAX,
