Wait to execute system calls in Vista



I have a GUI which needs to call an external program and wait for its completion. In the past I've only gotten the program to run in Windows Vista using 'windopen' but the only way I can get a program to wait (on a Windows XP system) is to use bang (!).

How can I run an external program and wait for its completion on Windows Vista? It should work on older versions of Matlab (7.0 and higher at least).
.