FUNCTION AppAlreadyRunning LOCAL hsem, lpszSemName #define ERROR_ALREADY_EXISTS 183 DECLARE integer GetLastError IN win32API DECLARE integer CreateSemaphore IN WIN32API ; string @ lpSemaphoreAttributes, ; LONG lInitialCount, ; LONG lMaximumCount, ; string @ lpName lpszSemName = "MyUniqueApplicationName" && Whatever you want per your app hSem = CreateSemaphore(0,0,1,lpszSemName) RETURN (hsem # 0 AND GetLastError() == ERROR_ALREADY_EXISTS)Cetin