diff --git a/SystemTools.cxx b/SystemTools.cxx
index f3d0c6209eb395fdc4cbe4aa9689145f205d13b5..5c3e741643c04e99ab3de82454734a0dfa6e7cf8 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -492,11 +492,11 @@ void SystemTools::ReplaceString(kwsys_stl::string& source,
 #if defined(_WIN32) && !defined(__CYGWIN__)
 bool SystemTools::ReadRegistryValue(const char *key, kwsys_stl::string &value)
 {
-
+  bool valueset = false;
   kwsys_stl::string primary = key;
   kwsys_stl::string second;
   kwsys_stl::string valuename;
- 
+
   size_t start = primary.find("\\");
   if (start == kwsys_stl::string::npos)
     {
@@ -558,12 +558,24 @@ bool SystemTools::ReadRegistryValue(const char *key, kwsys_stl::string &value)
       if (dwType == REG_SZ)
         {
         value = data;
-        RegCloseKey(hKey);
-        return true;
+        valueset = true;
+        }
+      else if (dwType == REG_EXPAND_SZ)
+        {
+        char expanded[1024];
+        DWORD dwExpandedSize = sizeof(expanded)/sizeof(expanded[0]);
+        if(ExpandEnvironmentStrings(data, expanded, dwExpandedSize))
+          {
+          value = expanded;
+          valueset = true;
+          }
         }
       }
+
+    RegCloseKey(hKey);
     }
-  return false;
+
+  return valueset;
 }
 #else
 bool SystemTools::ReadRegistryValue(const char *, kwsys_stl::string &)
diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake
index 161413d5c76d708602d69ef907807e60741fd636..84521761acda3a960f3a93d96290c237e0f34d9a 100644
--- a/kwsysDateStamp.cmake
+++ b/kwsysDateStamp.cmake
@@ -1,10 +1,10 @@
 # Do not edit!  Generated by kwsysDateStamp.py
 
 # KWSys version date year component.  Format is CCYY.
-SET(KWSYS_VERSION_DATE_YEAR  2007)
+SET(KWSYS_DATE_STAMP_YEAR  2007)
 
 # KWSys version date month component.  Format is MM.
-SET(KWSYS_VERSION_DATE_MONTH 11)
+SET(KWSYS_DATE_STAMP_MONTH 11)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_VERSION_DATE_DAY   12)
+SET(KWSYS_DATE_STAMP_DAY   16)