anchor.diff:       CallNonClosureLabel,
        case Continuation of
          [] ->
  -	 hipe_rtl:mk_enter(NAddressReg, Args, not_remote);
  +	 hipe_rtl:mk_enter(NCNAddressReg, Args, not_remote);
          _ ->
  -	 hipe_rtl:mk_call(Dst, NAddressReg, Args,
  +	 hipe_rtl:mk_call(Dst, NCNAddressReg, Args,
   			  Continuation, Fail, not_remote)
        end],
   
     {BadArityLabName, BadArityCode} = gen_fail_code(Fail, {badarity, Fun}),
   
  -  CheckGetCode = 
  -    hipe_tagscheme:if_fun_get_arity_and_address(ArityReg, NAddressReg,
  +  CNAddressReg = hipe_rtl:mk_new_reg(),
  +  CheckGetCode =
  +    hipe_tagscheme:if_fun_get_arity_and_address(ArityReg, CNAddressReg,
   						Fun, BadFunLabName,
   						0.9),
     CheckArityCode = check_arity(ArityReg, length(RevArgs), BadArityLabName),
     CallCode =
       case Continuation of
         [] -> %% This is a tailcall
  -	[hipe_rtl:mk_enter(NAddressReg, ArgsAndFun, not_remote)];
  +	[hipe_rtl:mk_enter(CNAddressReg, ArgsAndFun, not_remote)];
         _ -> %% Ordinary call
  -	[hipe_rtl:mk_call(Dst, NAddressReg, ArgsAndFun,
  +	[hipe_rtl:mk_call(Dst, CNAddressReg, ArgsAndFun,
   			  Continuation, Fail, not_remote)]
       end,
     [CheckGetCode, CheckArityCode, CallCode, BadFunCode, BadArityCode].
  
positive.code:   BadFunLabName = hipe_rtl:label_name(NonClosureLabel),
    BadFunCode =
      [NonClosureLabel,
       hipe_rtl:mk_call([NAddressReg],
  		      'nonclosure_address',
  		      [Fun, hipe_rtl:mk_imm(length(Args))],
  		      hipe_rtl:label_name(CallNonClosureLabel),
  
negative.code: %% call_fun (also handles enter_fun when Continuation = [])
  
  gen_call_fun(Dst, ArgsAndFun, Continuation, Fail) ->  
    NCNAddressReg = hipe_rtl:mk_new_reg(),
    ArityReg = hipe_rtl:mk_new_reg_gcsafe(),
    [Fun|RevArgs] = lists:reverse(ArgsAndFun),
  
  