diff -up e-smith-ldap-5.2.0/root/var/service/ldap/ldif-fix.replace-logic e-smith-ldap-5.2.0/root/var/service/ldap/ldif-fix --- e-smith-ldap-5.2.0/root/var/service/ldap/ldif-fix.replace-logic 2010-12-01 17:37:38.000000000 -0700 +++ e-smith-ldap-5.2.0/root/var/service/ldap/ldif-fix 2010-12-01 17:44:45.000000000 -0700 @@ -355,13 +355,13 @@ while( not $reader->eof()) { } } - if (@donly && @donly == @lonly) { - # If we are removing all ldap only attributes do a remove or full delete + if (@donly && @donly == keys %lseen) { + # If we are removing all ldap attributes do a remove or full delete if (@uonly) { $entry->replace($attr => [ @uonly ]); } else { - $entry->delete($attr => [ @donly == keys %lseen ? () : @donly ]); + $entry->delete($attr => []); } } else {