How do you have your application restart itself. My application checks for updates on startup and some of the updates require a restart of the application.

I've tried making a second app called Restart which can be called from my app. The Restart app is supposed to wait a while so the original app has time to finish closing but it doesn't work.

From my app I call Restart with the Shell function and immediately after the call to Shell, End (also tried Unload Me) like:
Code:
Call Shell(App.Path & "\Restart.exe", vbNormalFocus)
End
The Restart app starts up no problem but...

The original app doesn't close It seems that it is waiting for the call to Shell to finish before it will close.

So after the Restart app waited a couple of seconds (I had it wait for up to 10 seconds), all the while the original app just sits there, it kicks off the new instance of the original app which tries to start but then gets caught by the App.PrevInstance check in the original app.

Why doesn't my original app close when the End or Unload Me call are made?

Any ideas how this can be accomplished?