I've got the latest release, but maybe adding the S word makes a difference. I think the problem was that my script was calling a part program, but not ending the script. I had the script in a while loop waiting for the part to finish, so calling M3 became a situation of calling a macro from within a macro. I modified the script so that it ends after starting the part program, so now the M3 inside the part program works fine. This seems to be the best resolution, so I'm going to go with that solution for now. Thanks for the help!