diff --git a/SystemTools.cxx b/SystemTools.cxx
index 554a93aa4c1b40fa8513d13c814cd624c80b7e7b..2b06b1fe478508fc8bd021c7969efe14fbb9219a 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -469,6 +469,11 @@ public:
   StringMap Cyg2Win32Map;
 #endif
 
+  /**
+   * Actual implementation of FileIsFullPath.
+   */
+  static bool FileIsFullPath(const char*, size_t);
+
   /**
    * Find a filename (file or directory) in the system PATH, with
    * optional extra paths.
@@ -4072,16 +4077,16 @@ bool SystemTools::LocateFileInDir(const char* filename, const char* dir,
 
 bool SystemTools::FileIsFullPath(const std::string& in_name)
 {
-  return SystemTools::FileIsFullPath(in_name.c_str(), in_name.size());
+  return SystemToolsStatic::FileIsFullPath(in_name.c_str(), in_name.size());
 }
 
 bool SystemTools::FileIsFullPath(const char* in_name)
 {
-  return SystemTools::FileIsFullPath(in_name,
-                                     in_name[0] ? (in_name[1] ? 2 : 1) : 0);
+  return SystemToolsStatic::FileIsFullPath(
+    in_name, in_name[0] ? (in_name[1] ? 2 : 1) : 0);
 }
 
-bool SystemTools::FileIsFullPath(const char* in_name, size_t len)
+bool SystemToolsStatic::FileIsFullPath(const char* in_name, size_t len)
 {
 #if defined(_WIN32) || defined(__CYGWIN__)
   // On Windows, the name must be at least two characters long.
diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in
index 2a7d55bf2e1dc899cf2380176bbbdfa5e0e70997..bd2c4921b0cfbc876b0ded6a6989415360b5cbc0 100644
--- a/SystemTools.hxx.in
+++ b/SystemTools.hxx.in
@@ -971,11 +971,6 @@ private:
   static void ReplaceString(std::string& source, const char* replace,
                             size_t replaceSize, const std::string& with);
 
-  /**
-   * Actual implementation of FileIsFullPath.
-   */
-  static bool FileIsFullPath(const char*, size_t);
-
   static SystemToolsStatic* Statics;
   friend class SystemToolsStatic;
   friend class SystemToolsManager;