Hi Plato The following puts the message box on the screen before the photo is taken supporting your argument my "ProcessWait" was just timing out and not causing a "wait" to occur. I had deduced I needed to slow the AutoIt process down to let the camera do its thing before it got shut down by the "WinClose" instruction. This supports my hunch, but I was getting a facsimile of the right answer for all the wrong reasons when I used - ProcessWait("RemoteCapture DC",10) without the .exe . Run("C:\Program Files\Canon\CameraWindow\RemoteCaptureDC\RemoteCaptureDC.exe") WinWaitActive("RemoteCapture DC", "") ControlClick("RemoteCapture DC", "", "[iD: 1011]") msgBox(0,"Close RC DC when download is complete", "") WinClose("RemoteCapture DC") Where as: Run("C:\Program Files\Canon\CameraWindow\RemoteCaptureDC\RemoteCaptureDC.exe") WinWaitActive("RemoteCapture DC", "") ControlClick("RemoteCapture DC", "", "[iD: 1011]") ProcessWait("RemoteCapture DC.exe",15) WinClose("RemoteCapture DC") takes the shot and shuts down at whatever time has been set in ProcessWait line timed from the moment the script is started. It seems there is no feedback between RC DC and AutoIt because I have not created any. I presume it works because the process time of RC DC is shorter than the run time of my AutoIt script with the wait instruction written correctly. $ReturnValue = ProcessWait("RemoteCapture DC.exe", 15) MsgBox(0, "$ReturnValue equals...", $ReturnValue) placed after the "ProcessWait" instruction produced a message box with a "0" OK, but seemed to mess-up the timing by introducing another 15 second wait I was not expecting. A good lesson in demonstrating and understanding what is actually going on, next lesson might be figuring out a feedback loop to test then data has down loaded OK, some time if it becomes a problem, Thanks, Alex.