anchor.diff:  				end
   	end,
   	case mnesia:transaction(F) of
  -		{atomic, Attributes} ->
  -			{ok, Attributes};
  +		{atomic, {SubPassword, Attributes}} ->
  +			{ok, SubPassword, Attributes};
   		{aborted, {throw, Reason}} ->
   			{error, Reason};
   		{aborted, Reason} ->
  
positive.code: 					[#subscriber{password = Password, attributes = Attributes,
  							enabled = true, disconnect = false} =
  							Entry ] when Entry#subscriber.balance > 0 ->
  						Attributes;
  					[#subscriber{password = Password, attributes = Attributes,
  							enabled = true, disconnect = true} =
  							Entry] when Entry#subscriber.balance > 0 ->
  						NewEntry = Entry#subscriber{disconnect = false},
  						mnesia:write(subscriber, NewEntry, write),
  						Attributes;
  					[#subscriber{password = Password, enabled = false}] ->
  						throw(disabled);
  					[#subscriber{password = Password} = Entry] when
  
negative.code: 
  -spec authorize(Subscriber :: string() | binary(),
  		Password :: string() | binary()) ->
  	{ok, Password :: binary(), Attributes :: radius_attributes:attributes()} |
  	{error, Reason :: out_of_credit | disabled | bad_password |
  					not_found | term()}.
  %% @doc Authorize a subscriber based on `enabled' and `balance' fields.
  %%
  %% 	If the subscriber `enabled' field true and have sufficient `balance'
  %%		set disconnect field to false and return `password' and `attributes'
  %%		or return the error reason.
  %% @private
  authorize(Subscriber, Password) when is_list(Subscriber) ->
  	authorize(list_to_binary(Subscriber), Password);
  