anchor.diff:  		true ->
   		    NewHeader = add_caller_identity(PstnCtx#pstn_ctx.destination, Request#request.method,
   						    Request#request.header, Dst, PstnCtx),
  +
  +		    %% make sure we don't downgrade SIPS to SIP
   		    NewURI = restore_sips_proto(PstnCtx#pstn_ctx.orig_uri, Request#request.uri),
  -		    NewRequest = Request#request{uri    = NewURI,
  -						 header = NewHeader
  -						},
  -		    start_sippipe(NewRequest, YxaCtx, Dst, [PstnCtx]);
  +		    NewRequest1 =
  +			Request#request{uri = NewURI,
  +					header = NewHeader
  +				       },
  +		    {NewDst, NewRequest} =
  +			case Dst of
  +			    _ when is_record(Dst, sipurl) ->
  +				NewDst1 = restore_sips_proto(PstnCtx#pstn_ctx.orig_uri, Dst),
  +				{NewDst1, NewRequest1};
  +			    route ->
  +				%% XXX do we need to ensure first Route header is SIPS, if Request-URI was?
  +				{Dst, NewRequest1}
  +			end,
  +
  +		    start_sippipe(NewRequest, YxaCtx, NewDst, [PstnCtx]);
   		false ->
   		    ok
   	    end;
  
positive.code: 		[]
  	end,
  
      FromGw ++ HasRoute.
  
  
  %%--------------------------------------------------------------------
  %% Function: auth_and_tag_verify_from(Request, YxaCtx, YXAPeerAuth,
  %%                                    PstnCtx)
  %%           Request     = request record()
  %%           YxaCtx      = yxa_ctx record()
  %%           YXAPeerAuth = bool(), user authenticated by peer of ours?
  %%           PstnCtx     = pstn_ctx record()
  %% Descrip.: If the From: has an address belonging to one of our
  %%           users, verify that the sender is authorized to use it.
  
negative.code: %% Returns : ignore |      drop request
  %%           ok            continue processing request
  %%--------------------------------------------------------------------
  auth_and_tag_verify_from(Request, YxaCtx, PstnCtx) ->
      #yxa_ctx{thandler	= THandler,
  	     app_logtag	= LogTag
  	    } = YxaCtx,
      YXAPeerAuth = is_tagged(peer_auth, PstnCtx),
      case local:pstnproxy_verify_from(Request, THandler, YXAPeerAuth, PstnCtx) of
  	ignore    -> ignore;
  	ok        -> ok;
  