Phil, by putting quotes around the whole CMD string, you're preventing the calling CL from replacing the parameters. You have to build up the command string. If I recall correctly, SBMRMTCMD doesn't like you to put expressions, so you'll need a temporary variable to build the command into: DCL &CMD TYPE(*CHAR) LEN(3000) ... chgvar &CMD 'CALL OP_PASS2 PARM(' + *CAT &PWD1 + *CAT &PWD2 + *CAT &PWD3 + *CAT &RTNMSG + *CAT &CORPSYS + *CAT ')' sbmrmtcmd CMD(&CMD) ... If any of the parameters might have more than one word (&RTNMSG?), you might need to add quotes, too: DCL "E TYPE(*CHAR) LEN(1) VALUE('''') ... chgvar &CMD 'CALL OP_PASS2 PARM(' + *CAT &PWD1 + *CAT &PWD2 + *CAT &PWD3 + *CAT "E *CAT &RTNMSG *CAT QUOTE + *CAT &CORPSYS + *CAT ')'

Reply With Quote