anchor.diff:  			throw(undefined_tariff)
   	end;
   rate3(Protocol, Service, Product, Buckets, _Address,
  -		Price, Flag, DebitAmounts, ReserveAmounts, State, Rated, ChargingKey, _ServiceNetwork) ->
  +		Price, Flag, DebitAmounts, ReserveAmounts, State,
  +		_RoamingTable, 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)
  +		State,
  +		RoamingTable, 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
  
positive.code: 			throw(table_lookup_failed)
  	end;
  rate4(Protocol, Service, Product, Buckets, Price,
  		Flag, DebitAmounts, ReserveAmounts, State, Rated, ChargingKey, _ServiceNetwork) ->
  	charge(Protocol, Service, Product, Buckets, Price,
  			Flag, DebitAmounts, ReserveAmounts, State, Rated, ChargingKey).
  %% @hidden
  
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)
  