diff --git a/CHANGES b/CHANGES
index de07f3baa7c9c6469e6d8b6ae3436a4bea2e36b1..55579a004a6eda25f8e6b5276a604e1c5a4d7e33 100644
--- a/CHANGES
+++ b/CHANGES
@@ -23,6 +23,7 @@ OpenLDAP 2.4.13 Engineering
 	Added slapo-constraint support for relax control (ITS#5705)
 	Added slapo-constraint "set" type (ITS#5702)
 	Fixed slapo-constraint filter parsing error (ITS#5751)
+	Fixed slapo-rwm objectClass preservation (ITS#5760)
 	Fixed slapo-rwm rewriting undefined filter (ITS#5731)
 	Fixed slapo-rwm reusing freed filter (ITS#5732)
 	Added slapo-translucent try local bind when remote fails (ITS#5656)
diff --git a/servers/slapd/overlays/rwm.c b/servers/slapd/overlays/rwm.c
index f9301ccf9fc846ccacb3a303745e230098d9ca98..1c8e704751d670a50502ec6c52942a51e70619ec 100644
--- a/servers/slapd/overlays/rwm.c
+++ b/servers/slapd/overlays/rwm.c
@@ -1177,7 +1177,9 @@ remove_oc:;
 					last--;
 					bv--;
 
-				} else if ( mapped.bv_val != bv[0].bv_val ) {
+				} else if ( mapped.bv_val != bv[0].bv_val
+					&& ber_bvstrcasecmp( &mapped, &bv[0] ) != 0 )
+				{
 					int	i;
 
 					for ( i = 0; !BER_BVISNULL( &(*ap)->a_vals[ i ] ); i++ ) {