diff -r 7c03e3b1b858 -r 8413916df816 mercurial/posix.py --- a/mercurial/posix.py Thu Aug 25 16:21:53 2011 -0500 +++ b/mercurial/posix.py Wed Aug 24 05:42:41 2011 -0400 @@ -256,7 +256,9 @@ for path in os.environ.get('PATH', '').split(os.pathsep): executable = findexisting(os.path.join(path, command)) if executable is not None: - return executable + st = os.stat(executable) + if (st.st_mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)): + return executable return None def setsignalhandler():