anchor.diff:  			RoamingTable = roaming_table_prefix(Price),
   			rate4(Protocol, Service, Product, Buckets, Price,
   					Flag, DebitAmounts, ReserveAmounts,
  -					State#state{roaming_tb_prefix = RoamingTable}, Rated, ChargingKey, ServiceNetwork);
  +					State, RoamingTable, Rated, ChargingKey, ServiceNetwork);
   		_ ->
   			throw(price_not_found)
   	end.
   %% @hidden
   rate3(Protocol, Service, Product, Buckets, Address,
   		#price{type = tariff, char_value_use = CharValueUse} = Price,
  -		Flag, DebitAmounts, ReserveAmounts, #state{roaming_tb_prefix = RoamingTable} = State,
  -		Rated, ChargingKey, ServiceNetwork) ->
  +		Flag, DebitAmounts, ReserveAmounts, State,
  +		RoamingTable, Rated, ChargingKey, ServiceNetwork) ->
   	case lists:keyfind("destPrefixTariffTable", #char_value_use.name, CharValueUse) of
   		#char_value_use{values = [#char_value{value = TariffTable}]}
   				when RoamingTable == undefined ->
  
positive.code: 			throw(undefined_tariff)
  	end;
  rate3(Protocol, Service, Product, Buckets, _Address,
  		Price, Flag, DebitAmounts, ReserveAmounts, State, Rated, ChargingKey, _ServiceNetwork) ->
  	charge(Protocol, Product, Service, Buckets, Price,
  			Flag, DebitAmounts, ReserveAmounts, State, Rated, ChargingKey).
  %% @hidden
  rate4(Protocol, Service, Product, Buckets,
  		#price{type = tariff} = Price, Flag, DebitAmounts, ReserveAmounts,
  		#state{roaming_tb_prefix = RoamingTable} = State,
  		Rated, ChargingKey, ServiceNetwork)
  		when is_list(RoamingTable), is_list(ServiceNetwork) ->
  	Table = list_to_existing_atom(RoamingTable),
  	case catch ocs_gtt:lookup_last(Table, ServiceNetwork) of
  
negative.code: 			RoamingTable = roaming_table_prefix(Price),
  			rate3(Protocol, Service, Product, Buckets, Address,
  					Price, Flag, DebitAmounts, ReserveAmounts,
  					State, RoamingTable, Rated,
  					ChargingKey, ServiceNetwork);
  		_ ->
  			throw(price_not_found)
  