Fixed logic after determining of the source file exists and whether we have said we've got a valid path to it or not. Plus a check on semaphore waiting.