diff --git a/servers/slapd/result.c b/servers/slapd/result.c
index 3ce9e29bd9820b2b3f5fc1c6c68b7a9bc3dd0361..16b87b40c1e7caa9ff32624c1d6af74aac1e12c7 100644
--- a/servers/slapd/result.c
+++ b/servers/slapd/result.c
@@ -302,11 +302,11 @@ send_ldap_controls( Operation *o, BerElement *ber, LDAPControl **c )
 
 		ber_printf( sber, "{e}", LDAP_UNWILLING_TO_PERFORM );
 
-		if( ber_flatten2( ber, &sorted.ldctl_value, 0 ) == -1 ) {
+		if( ber_flatten2( sber, &sorted.ldctl_value, 0 ) == -1 ) {
 			return -1;
 		}
 
-		(void) ber_free_buf( ber );
+		(void) ber_free_buf( sber );
 
 		rc = send_ldap_control( ber, &sorted );
 		if( rc == -1 ) return rc;