--- ./os2/os2.c-ppre	Thu Sep 18 23:26:44 2003
+++ ./os2/os2.c	Thu Oct  9 00:23:14 2003
@@ -620,6 +620,7 @@ static const struct {
   {&pmwin_handle, NULL, 780},		/* WinLoadPointer */
   {&pmwin_handle, NULL, 828},		/* WinQuerySysPointer */
   {&doscalls_handle, NULL, 417},	/* DosReplaceModule */
+  {&rexxapi_handle, "RexxRegisterSubcomExe", 0},
 };
 
 HMODULE
--- ./os2/os2ish.h-ppre	Thu Sep 25 13:48:26 2003
+++ ./os2/os2ish.h	Thu Oct  9 00:22:04 2003
@@ -689,6 +689,7 @@ enum entries_ordinals {
     ORD_WinLoadPointer,
     ORD_WinQuerySysPointer,
     ORD_DosReplaceModule,
+    ORD_RexxRegisterSubcomExe,
     ORD_NENTRIES
 };
 
--- ./os2/OS2/REXX/REXX.xs-ppre	Sun Dec 22 23:48:34 2002
+++ ./os2/OS2/REXX/REXX.xs	Thu Oct  9 01:05:34 2003
@@ -52,6 +52,8 @@ static LONG    APIENTRY (*pRexxStart) (L
 				    PSZ, LONG, PRXSYSEXIT, PSHORT, PRXSTRING);
 static APIRET  APIENTRY (*pRexxRegisterFunctionExe) (PSZ,
 						  RexxFunctionHandler *);
+static APIRET  APIENTRY (*pRexxRegisterSubcomExe)  (PCSZ pszEnvName, PFN pfnEntryPoint,
+    PUCHAR pUserArea);
 static APIRET  APIENTRY (*pRexxDeregisterFunction) (PSZ);
 
 static ULONG (*pRexxVariablePool) (PSHVBLOCK pRequest);
@@ -313,11 +315,13 @@ initialize(void)
     *(PFN *)&pRexxDeregisterFunction
 	= loadByOrdinal(ORD_RexxDeregisterFunction, 1);
     *(PFN *)&pRexxVariablePool = loadByOrdinal(ORD_RexxVariablePool, 1);
+    *(PFN *)&pRexxRegisterSubcomExe
+	= loadByOrdinal(ORD_RexxRegisterSubcomExe, 1);
     needstrs(8);
     needvars(8);
     trace = getenv("PERL_REXX_DEBUG");
      
-    rc = RexxRegisterSubcomExe("PERLEVAL", (PFN)&SubCommandPerlEval, NULL);
+    rc = pRexxRegisterSubcomExe("PERLEVAL", (PFN)&SubCommandPerlEval, NULL);
 }
 
 static int
