https://issues.dlang.org/show_bug.cgi?id=15915
--- Comment #3 from Atila Neves <atila.ne...@gmail.com> --- Then my understanding is correct; that's what I thought workDir was, the directory where the process is started in. However, I don't think the current implementation makes sense. There's already an if to check if the path has directory separators in it - if workDir is not "", I think what makes sense is to be relative to workDir. i.e. execute(["./foo"]); //look for ./foo execute(["./foo"], ..., "bar"); //look for bar/foo execute(["foo"]); //search path for foo execute(["foo", ..., "bar"); //search path for foo --