anchor.diff:  			throw(multiple_service_credit_control_avp_not_available)
   	end,
   	{ReqUsageType, ReqUsage} = case RSU of
  -		#'diameter_cc_app_Requested-Service-Unit'{'CC-Time' = CCTime} when
  +		#'diameter_cc_app_Requested-Service-Unit'{'CC-Time' = [CCTime]} when
   				CCTime =/= [] ->
   			{seconds, CCTime};
  -		#'diameter_cc_app_Requested-Service-Unit'{'CC-Total-Octets' = CCTotalOctets,
  -					'CC-Output-Octets' = CCOutputOctets, 'CC-Input-Octets' = CCInputOctets} when
  -				is_integer(CCTotalOctets), is_integer(CCInputOctets), is_integer(CCOutputOctets) ->
  +		#'diameter_cc_app_Requested-Service-Unit'{'CC-Total-Octets' = [CCTotalOctets]} ->
   			{octets, CCTotalOctets};
  +		#'diameter_cc_app_Requested-Service-Unit'{'CC-Output-Octets' = [CCOutputOctets],
  +				'CC-Input-Octets' = [CCInputOctets]} when is_integer(CCInputOctets),
  +				is_integer(CCOutputOctets) ->
  +			{octets, CCOutputOctets + CCOutputOctets};
   		_ ->
   			throw(unsupported_request_units)
   	end,
  
positive.code: 	{UsedType, UsedUsage} = case USU of
  		#'diameter_cc_app_Used-Service-Unit'{'CC-Time' = CCTime} when CCTime =/= [] ->
  			{seconds, CCTime};
  		#'diameter_cc_app_Used-Service-Unit'{'CC-Total-Octets' = CCTotalOctets,
  					'CC-Output-Octets' = CCOutputOctets, 'CC-Input-Octets' = CCInputOctets} when
  				is_integer(CCTotalOctets), is_integer(CCInputOctets), is_integer(CCOutputOctets) ->
  			{octets, CCTotalOctets};
  		[] ->
  
negative.code: 	Balance = 0, %% ??
  	try
  		[UsedUnits] = Request#'diameter_cc_app_CCR'.'Used-Service-Unit',
  		#'diameter_cc_app_Used-Service-Unit'{'CC-Total-Octets' = [Total],
  				'CC-Input-Octets' = [In], 'CC-Output-Octets' = [Out]} = UsedUnits,
  		Usage = case Total of
  			[T] when is_integer(T) ->
  				T;
  