diff --git a/CHANGES b/CHANGES
index f07fa8db676da02349c023929f067594630c6a31..97c950152ea6f961d6e513451cbf2aa5703b7d37 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 OpenLDAP 2.4 Change Log
 
 OpenLDAP 2.4.20 Engineering
+	Fixed liblber inverted LBER_USE_DER test (ITS#6348)
 	Fixed liblber to return failure on certain failures (ITS#6344)
 	Fixed libldap uninitialized return value (ITS#6355)
 	Fixed liblutil constant (ITS#5909)
diff --git a/libraries/liblber/encode.c b/libraries/liblber/encode.c
index d2a432fe1e1697de7399130449525b66fd637236..e0968507dd485269bfd6624e3afd13421f5a993b 100644
--- a/libraries/liblber/encode.c
+++ b/libraries/liblber/encode.c
@@ -455,7 +455,7 @@ ber_put_seqorset( BerElement *ber )
 
 	/* Store length, and close gap of leftover reserved length octets */
 	len = xlen - SOS_LENLEN;
-	if ( ber->ber_options & LBER_USE_DER ) {
+	if ( !(ber->ber_options & LBER_USE_DER) ) {
 		int i;
 		lenptr[0] = SOS_LENLEN - 1 + 0x80; /* length(length)-1 */
 		for( i = SOS_LENLEN; --i > 0; len >>= 8 ) {