diff --git a/SystemTools.cxx b/SystemTools.cxx
index 1ad91e512427c86ec64217295f1dbb9a60834053..b2a49634f989a07def1af85451929e658e80df31 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -4442,7 +4442,7 @@ kwsys_stl::string SystemTools::GetCurrentDateTime(const char* format)
   return kwsys_stl::string(buf);
 }
 
-kwsys_stl::string SystemTools::MakeCidentifier(const char* s)
+kwsys_stl::string SystemTools::MakeCidentifier(const kwsys_stl::string& s)
 {
   kwsys_stl::string str(s);
   if (str.find_first_of("0123456789") == 0)
diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in
index 01d816ba057ad8ecb2d51b4327d63fecb4a18427..cef74a32d3235c5524ca5df46a8c720f16907bfe 100644
--- a/SystemTools.hxx.in
+++ b/SystemTools.hxx.in
@@ -89,9 +89,9 @@ public:
    * then an underscore is prepended.  Note that this can produce
    * identifiers that the standard reserves (_[A-Z].* and __.*).
    */
-  static kwsys_stl::string MakeCidentifier(const char* s);
+  static kwsys_stl::string MakeCidentifier(const kwsys_stl::string& s);
 
-  static kwsys_stl::string MakeCindentifier(const char* s)
+  static kwsys_stl::string MakeCindentifier(const kwsys_stl::string& s)
   {
     return MakeCidentifier(s);
   }