When you call ldapTemplate.modifyAttributes behind the scenes does it read from the LDAP and check to see if there are any modifications (data passed into modifyAttributes != data in the LDAP) before doing the write or does it always do the write regardless of if there are any modifications or not? I know on debug log level it logs the number of modifications so I guess it has this information but I'm not sure if it does this (performance optimisation?) or not. If it does not I'd be interested in the reason too. Thanks.