diff --git a/SystemTools.cxx b/SystemTools.cxx
index b018a432cb1535dfe08b198c61016e6060044e2c..368eafd6ba32388ce543f80acfa485376ef5d56d 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -763,7 +763,7 @@ bool SystemTools::MakeDirectory(const char* path)
 
 bool SystemTools::MakeDirectory(const std::string& path)
 {
-  if (SystemTools::FileExists(path)) {
+  if (SystemTools::PathExists(path)) {
     return SystemTools::FileIsDirectory(path);
   }
   if (path.empty()) {
@@ -1280,7 +1280,7 @@ bool SystemTools::PathCygwinToWin32(const char* path, char* win32_path)
 
 bool SystemTools::Touch(const std::string& filename, bool create)
 {
-  if (!SystemTools::FileExists(filename)) {
+  if (!SystemTools::PathExists(filename)) {
     if (create) {
       FILE* file = Fopen(filename, "a+b");
       if (file) {
@@ -4389,10 +4389,7 @@ bool SystemTools::SetPermissions(const char* file, mode_t mode,
 bool SystemTools::SetPermissions(const std::string& file, mode_t mode,
                                  bool honor_umask)
 {
-  // TEMPORARY / TODO:  After FileExists calls lstat() instead of
-  // access(), change this call to FileExists instead of
-  // TestFileAccess so that we don't follow symlinks.
-  if (!SystemTools::TestFileAccess(file, TEST_FILE_OK)) {
+  if (!SystemTools::PathExists(file)) {
     return false;
   }
   if (honor_umask) {