anchor.diff:  	{struct, Object} = mochijson:decode(Body1),
   	{_, ID} = lists:keyfind("id", 1, Object),
   	{_, _URI2} = lists:keyfind("href", 1, Object),
  -	{_, {array, _Characteristic}} = lists:keyfind("characteristic", 1, Object).
  +	{_, {array, Characteristic}} = lists:keyfind("characteristic", 1, Object),
  +	F = fun(_F, [{struct, [{"name", Name}, {"value", Value}]} | _T], Name) ->
  +				{ok, Value};
  +			(_F, [{struct, [{"value", Value}, {"name", Name}]} | _T], Name) ->
  +				{ok, Value};
  +			(F, [_ | T], Name) ->
  +				F(F, T, Name);
  +			(_F, [], _Name) ->
  +				{error, not_found}
  +	end,
  +	{ok, ID} = F(F, Characteristic, "username"),
  +	{error, not_found} = F(F, Characteristic, "password"),
  +	{ok, Locale} = F(F, Characteristic, "locale").
   
   delete_user() ->
   	[{userdata, [{doc,"Delete user in rest interface"}]}].
  
positive.code: 			PatchBody],
  	ok = ssl:send(SslSock, list_to_binary(PatchReq)),
  	Timeout = 3000,
  	F = fun(_F, _Sock, {error, timeout}, Acc) ->
  					lists:reverse(Acc);
  			(F, Sock, {ok, Bin}, Acc) ->
  					F(F, Sock, ssl:recv(Sock, 0, Timeout), [Bin | Acc])
  	end,
  	RecvBuf = F(F, SslSock, ssl:recv(SslSock, 0, Timeout), []),
  	PatchResponse = list_to_binary(RecvBuf),
  	[Headers1, <<>>] = binary:split(PatchResponse, <<$\r,$\n,$\r,$\n>>),
  	<<"HTTP/1.1 204", _/binary>> = Headers1,
  
negative.code: 	{struct, Object} = mochijson:decode(ResponseBody),
  	{_, ID} = lists:keyfind("id", 1, Object),
  	{_, URI} = lists:keyfind("href", 1, Object),
  	{_, {array, Characteristic}} = lists:keyfind("characteristic", 1, Object),
  	RestPort = ?config(port, Config),
  	{ok, SslSock} = ssl:connect({127,0,0,1}, RestPort,  [binary, {active, false}], infinity),
  	ok = ssl:ssl_accept(SslSock),
  