diff --git a/CHANGES b/CHANGES
index da6646d3222bea759dac47ef3afb1cf13baec9cf..c613cddfde6758f790e9dae8be07a365330432eb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -38,6 +38,7 @@ OpenLDAP 2.4.17 Engineering
 	Fixed slapo-rwm dn passing (ITS#6070)
 	Fixed slapo-rwm entry free (ITS#6058)
 	Fixed slapo-rwm entry release (ITS#6081)
+	Fixed slapo-translucent entry gathering (ITS#6156)
 	Build Environment
 		Added test056-monitor (ITS#5540)
 		Added test057-memberof-refint (ITS#5395)
diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c
index 92d9a211517b2f9d65ac73a18a5624b37edee06c..f5d3cf8e380962f1e06d9880c805fbc8e271291d 100644
--- a/servers/slapd/overlays/translucent.c
+++ b/servers/slapd/overlays/translucent.c
@@ -1110,6 +1110,8 @@ static int translucent_search(Operation *op, SlapReply *rs) {
 	op->o_callback = &cb;
 
 	if ( fr || !fl ) {
+		AttributeName *attrs = op->ors_attrs;
+		op->ors_attrs = NULL;
 		op->o_bd = &ov->db;
 		tc.step |= RMT_SIDE;
 		if ( fl ) {
@@ -1118,6 +1120,7 @@ static int translucent_search(Operation *op, SlapReply *rs) {
 			filter2bv_x( op, fr, &op->ors_filterstr );
 		}
 		rc = ov->db.bd_info->bi_op_search(op, rs);
+		op->ors_attrs = attrs;
 		op->o_bd = tc.db;
 		if ( fl ) {
 			op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
@@ -1133,6 +1136,8 @@ static int translucent_search(Operation *op, SlapReply *rs) {
 	op->ors_filterstr = fbv;
 	op->ors_filter = tc.orig;
 	op->o_callback = cb.sc_next;
+	rs->sr_attrs = op->ors_attrs;
+
 	/* Send out anything remaining on the list and finish */
 	if ( tc.step & USE_LIST ) {
 		if ( tc.list ) {