diff --git a/ghc/compiler/deSugar/DsForeign.lhs b/ghc/compiler/deSugar/DsForeign.lhs
index 30f1089c87a838872a45b0b1ae7d3c0a886c72c6..9bb1d3ac22102a821cefa0722f13ada04ffa8330 100644
--- a/ghc/compiler/deSugar/DsForeign.lhs
+++ b/ghc/compiler/deSugar/DsForeign.lhs
@@ -519,7 +519,8 @@ fexportEntry mod_nm c_nm helper args res_ty cc isDyn = (header_bits, c_bits)
   -}
   (proto_args, real_args)
     = case cc of
-	CCallConv | isDyn -> ( text "a0" : text "a_" : mkCArgNames 1 (tail args)
+	CCallConv | isDyn -> ( text "a0" : text "original_return_addr" 
+                                         : mkCArgNames 1 (tail args)
 			     , head args : addrTy : tail args)
         other		  -> (mkCArgNames 0 args, args)