diff --git a/CMakeLists.txt b/CMakeLists.txt
index 645a4193b2342778c6baefb8a54a0bf72c36dd69..145e43a49d8c5a0d32f2ecc7be937eea6e572e58 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -848,6 +848,12 @@ ENDIF(KWSYS_ENABLE_C AND KWSYS_C_SRCS)
 # line to configure the namespace in the C and C++ source files.
 ADD_DEFINITIONS("-DKWSYS_NAMESPACE=${KWSYS_NAMESPACE}")
 
+IF(KWSYS_USE_String)
+  # Activate code in "String.c".  See the comment in the source.
+  SET_SOURCE_FILES_PROPERTIES(String.c PROPERTIES
+    COMPILE_FLAGS "-DKWSYS_STRING_C")
+ENDIF(KWSYS_USE_String)
+
 #-----------------------------------------------------------------------------
 # Process execution on windows needs to build a forwarding executable
 # that works around a Win9x bug.  We encode the executable into a C
diff --git a/String.c b/String.c
index 2df11781dcdd54175dd335f92e47189416709fd2..7d3284918b8b58ef48bb4b615c952c3de151c229 100644
--- a/String.c
+++ b/String.c
@@ -11,6 +11,14 @@
      PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
+#ifdef KWSYS_STRING_C
+/*
+All code in this source file is conditionally compiled to work-around
+template definition auto-search on VMS.  Other source files in this
+directory that use the stl string cause the compiler to load this
+source to try to get the definition of the string template.  This
+condition blocks the compiler from seeing the symbols defined here.
+*/
 #include "kwsysPrivate.h"
 #include KWSYS_HEADER(String.h)
 
@@ -105,3 +113,5 @@ int kwsysString_strncasecmp(const char* lhs, const char* rhs, size_t n)
   return result;
 #endif
 }
+
+#endif /* KWSYS_STRING_C */
diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake
index 2f56a09801ec30f4e9b2116f5da6ea5d608eab60..c464938673beeae7c5d626c64409459e9736aeb2 100644
--- a/kwsysDateStamp.cmake
+++ b/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@ SET(KWSYS_DATE_STAMP_YEAR  2009)
 SET(KWSYS_DATE_STAMP_MONTH 06)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   09)
+SET(KWSYS_DATE_STAMP_DAY   10)
diff --git a/kwsysPrivate.h b/kwsysPrivate.h
index e02117080316b2108033adca47555d92f7535bdc..90623e50e958de9bbe30f401ef1f698b52e8e341 100644
--- a/kwsysPrivate.h
+++ b/kwsysPrivate.h
@@ -39,7 +39,5 @@
 #define KWSYS_NAMESPACE_STRING1(x) #x
 
 #else
-# ifndef __VMS /* Avoid strange false positive on VMS compiler.  */
-#  error "kwsysPrivate.h included multiple times."
-# endif
+# error "kwsysPrivate.h included multiple times."
 #endif