diff --git a/require.h b/require.h
index 59d89b001367d6b0ab8d165d2acd755511b81ee9..318deedb327cfa9fad1a4f91b016cf4701de26f2 100644
--- a/require.h
+++ b/require.h
@@ -15,6 +15,7 @@ const char* getLibVersion(const char* libname);
 const char* getLibLocation(const char* libname);
 int libversionShow(const char* outfile);
 int runScript(const char* filename, const char* args);
+int loadIocsh(const char* filename, const char* args);
 int putenvprintf(const char* format, ...) __attribute__((__format__(__printf__,1,2)));
 void pathAdd(const char* varname, const char* dirname);
 
diff --git a/runScript.c b/runScript.c
index daf79fa343ed257ac9be183d4447db286bf374a7..de736d511f31f02f3e0f58e6e4e67b12008b5a59 100644
--- a/runScript.c
+++ b/runScript.c
@@ -52,6 +52,12 @@ epicsShareFunc int epicsShareAPI iocshCmd(const char *cmd);
 
 int runScriptDebug=0;
 
+int loadIocsh(const char* filename, const char* args)
+{
+  return runScript(filename, args);
+}
+
+
 int runScript(const char* filename, const char* args)
 {
     MAC_HANDLE *mac = NULL;
@@ -346,6 +352,17 @@ int afterInit(char* cmd, char* a1, char* a2, char* a3, char* a4, char* a5, char*
 epicsExportAddress(int, runScriptDebug);
 epicsExportAddress(int, exprDebug);
 
+static const iocshFuncDef loadIocshDef = {
+    "loadIocsh", 2, (const iocshArg *[]) {
+        &(iocshArg) { "filename", iocshArgString },
+        &(iocshArg) { "substitutions", iocshArgString },
+}};
+static void loadIocshFunc(const iocshArgBuf *args)
+{
+    loadIocsh(args[0].sval, args[1].sval);
+}
+
+
 static const iocshFuncDef runScriptDef = {
     "runScript", 2, (const iocshArg *[]) {
         &(iocshArg) { "filename", iocshArgString },
@@ -384,6 +401,7 @@ static void runScriptRegister(void)
     if (firstTime) {
         firstTime = 0;
         iocshRegister (&runScriptDef, runScriptFunc);
+	iocshRegister (&loadIocshDef, loadIocshFunc);
         iocshRegister (&afterInitDef, afterInitFunc);
     }
 }