--- tmp/asterisk-11.24.1/res/res_config_ldap.c 2016-10-27 20:34:34.000000000 +0200 +++ asterisk-11.24.1/res/res_config_ldap.c 2016-11-09 20:08:28.824049282 +0100 @@ -1239,11 +1239,18 @@ ldap_mods = ldap_memcalloc(sizeof(LDAPMod *), mods_size); ldap_mods[0] = ldap_memcalloc(1, sizeof(LDAPMod)); - ldap_mods[0]->mod_op = LDAP_MOD_REPLACE; - ldap_mods[0]->mod_type = ldap_strdup(newparam); - ldap_mods[0]->mod_values = ast_calloc(sizeof(char *), 2); - ldap_mods[0]->mod_values[0] = ldap_strdup(newval); + if (strlen(newval) == 0) { + ldap_mods[0]->mod_op = LDAP_MOD_DELETE; + } else { + + ldap_mods[0]->mod_op = LDAP_MOD_REPLACE; + + ldap_mods[0]->mod_values = ast_calloc(sizeof(char *), 2); + ldap_mods[0]->mod_values[0] = ldap_strdup(newval); + } + + ldap_mods[0]->mod_type = ldap_strdup(newparam); while ((newparam = va_arg(ap, const char *))) { newparam = convert_attribute_name_to_ldap(table_config, newparam);