In reply to Dave Garbutt.

Dave,
As experimental in SAS 9.3m2, you can use the DOSUBL function as a pretty effective substitute for CALL EXECUTE. I plan a related blog post soon. You can read about DOSUBL in this SAS Global Forum paper.