diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas
index 279c092ec2..50fdf3c64c 100644
--- a/compiler/ncgutil.pas
+++ b/compiler/ncgutil.pas
@@ -452,8 +452,8 @@ implementation
         { perform the fpc_setjmp call }
         setjmpres:=hlcg.g_call_system_proc(list,pd,[@paraloc1],nil);
         location_reset(tmpresloc,LOC_REGISTER,def_cgsize(setjmpres.def));
-        tmpresloc.register:=hlcg.getaddressregister(list,pushexceptres.def);
-        hlcg.gen_load_cgpara_loc(list,pushexceptres.def,setjmpres,tmpresloc,true);
+        tmpresloc.register:=hlcg.getintregister(list,setjmpres.def);
+        hlcg.gen_load_cgpara_loc(list,setjmpres.def,setjmpres,tmpresloc,true);
         hlcg.g_exception_reason_save(list,setjmpres.def,ossinttype,tmpresloc.register,t.reasonbuf);
         { if we get 0 here in the function result register, it means that we
           longjmp'd back here }