anchor.diff:  -spec passwd_fun(User :: string(), PassWd :: string()) ->
       {ok, User :: string()} | {error, Reason :: term()}.
   passwd_fun(User, PassWd) ->
  -    User_ = stringprep:prepare(User),
  +    User_ = stringprep:prepare(User, saslprep),
       case mnesia:read(pundun_user, User_) of
   	[R] ->
  -	    PassWd_ = stringprep:prepare(PassWd),
  +	    PassWd_ = stringprep:prepare(PassWd, saslprep),
   	    Salt = get_salt(16),
   	    IterCount = R#pundun_user.iteration_count,
   	    SaltedPassword = scramerl_lib:hi(PassWd_, Salt, IterCount),
  
positive.code:     case mnesia:dirty_read(pundun_user, User) of
  	[#pundun_user{salt = Salt, iteration_count = IC,
  		      salted_password = SaltedPassword}] ->
  	    Normalized = stringprep:prepare(Password),
  	    case scramerl_lib:hi(Normalized, Salt, IC) of
  		SaltedPassword ->
  		    true;
  
negative.code: -spec del_user(User :: string()) ->
      ok | {error, Reason :: term()}.
  del_user(User) ->
      User_ = stringprep:prepare(User, saslprep),
      case transaction(fun() -> mnesia:delete(pundun_user, User_, write) end) of
  	{atomic, ok} -> ok;
  	Else -> Else
  