anchor.diff:  		_ ->
   			[Des | Acc3]
   	end,
  -	case Class of
  -	a ->
  -		final_service_rating1(T, SCID, SInfo, Des, Class, [{struct, [SCID | Acc4]} | Acc]);
  -	b ->
  -		case used_unit(USU) of
  -			[] ->
  -				ServiceRating = {struct, [SCID, {"requestSubType", "DEBIT"} | Acc4]},
  -				final_service_rating1(T, SCID, SInfo, Des, Class, [ServiceRating | Acc]);
  -			ConsumedUnits ->
  -				ServiceRating = {struct, [SCID, {"consumedUnit", {struct, ConsumedUnits}},
  -						{"requestSubType", "DEBIT"} | Acc4]},
  -				final_service_rating1(T, SCID, SInfo, Des, Class, [ServiceRating | Acc])
  -		end
  +	case used_unit(USU) of
  +		[] ->
  +			ServiceRating = {struct, [SCID, {"requestSubType", "DEBIT"} | Acc4]},
  +			final_service_rating1(T, SCID, SInfo, Des, [ServiceRating | Acc]);
  +		ConsumedUnits ->
  +			ServiceRating = {struct, [SCID, {"consumedUnit", {struct, ConsumedUnits}},
  +					{"requestSubType", "DEBIT"} | Acc4]},
  +			final_service_rating1(T, SCID, SInfo, Des, [ServiceRating | Acc])
   	end;
  -final_service_rating1([], _SCID, _SI, _Des, _Class, Acc) ->
  +final_service_rating1([], _SCID, _SI, _Des, Acc) ->
   	Acc.
   
   %% @hidden
  
positive.code: process_request1(?'3GPP_CC-REQUEST-TYPE_TERMINATION_REQUEST' = RequestType,
  		#'3gpp_ro_CCR'{'Multiple-Services-Credit-Control' = MSCC1,
  		'Service-Information' = ServiceInformation,
  		'Service-Context-Id' = SvcContextId} = Request, SessionId,
  		RequestNum, SubscriberIds, OHost, _DHost, ORealm, _DRealm,
  		_IpAddress, _Port, _Class) ->
  	try
  		Location = get_service_location(ServiceInformation),
  		Destination = get_destination(ServiceInformation),
  		case service_type(SvcContextId) of
  			32251 ->
  				post_request_scur(SubscriberIds, SvcContextId,
  						SessionId, MSCC1, Location, final, a);
  			32260 ->
  				post_request_ecur(SubscriberIds, SvcContextId,
  						SessionId, MSCC1, Location, Destination, final, a)
  		end
  	of
  		{ok, JSON} ->
  			{struct, RatedStruct} = mochijson:decode(JSON),
  			{_, {_, ServiceElements}} = lists:keyfind("serviceRating", 1, RatedStruct),
  			{ServiceRating, ResultCode} = map_service_rating(ServiceElements, SessionId),
  			Container = build_container(MSCC1),
  			NewMSCC = build_mscc(ServiceRating, Container),
  			ok = remove_ref(SessionId),
  			diameter_answer(SessionId, NewMSCC, ResultCode,
  					OHost, ORealm, RequestType, RequestNum);
  		{error, ReasonCode} ->
  			error_logger:error_report(["Rating Error",
  					{module, ?MODULE}, {error, ReasonCode}]),
  			ok = remove_ref(SessionId),
  			diameter_error(SessionId, ReasonCode,
  					OHost, ORealm, RequestType, RequestNum)
  	catch
  		?CATCH_STACK ->
  
negative.code: 		[{_, Subscriber} | _] = SubscriberIds, OHost, _DHost, ORealm, _DRealm, _IpAddress, _Port, _Class) ->
  	try
  		{Direction, Address} = direction_address(ServiceInformation),
  		Destination = get_destination(ServiceInformation),
  		ServiceNetwork = service_network(ServiceInformation),
  		ServiceType = service_type(SvcContextId),
  		Timestamp = case EventTimestamp of
  