This part goes in your general part of the vb file:>>> Option Explicit Private Declare Function WaitForSingleObject Lib "kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Const INFINITE = -1& Private Const SYNCHRONIZE = &H100000 This part goes in a function or subroutine:>>> Dim iTask As Long, ret As Long, pHandle As Long iTask = Shell(Environ$("COMSPEC") & " /c " & sPath, vbHide) pHandle = OpenProcess(SYNCHRONIZE, False, iTask) If pHandle <> 0 Then WaitForSingleObject pHandle, INFINITE CloseHandle pHandle End If