diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index 8b2dabacf45774883acde2a02961fcf81309f375..8d5bd4e71467ee0551ccdf85f4858db65810b97f 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -640,8 +640,10 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
     std::set<std::string> uniqIncludeDirs;
 
     std::vector<std::string> includes;
+    const char *config = target->GetMakefile()
+                               ->GetDefinition("CMAKE_BUILD_TYPE");
     target->GetMakefile()->GetLocalGenerator()->
-      GetIncludeDirectories(includes, gtgt);
+      GetIncludeDirectories(includes, gtgt, "C", config);
     for(std::vector<std::string>::const_iterator dirIt=includes.begin();
         dirIt != includes.end();
         ++dirIt)
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index f1d9c31a878fd8f2cfe0ed2c6f43e01abaa43af9..689f213de058384bb9a342cabf2ff661f0b40624 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -890,7 +890,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
          l != targets.end(); ++l)
       {
       std::vector<std::string> includeDirs;
-      (*it)->GetIncludeDirectories(includeDirs, l->second);
+      const char *config = mf->GetDefinition("CMAKE_BUILD_TYPE");
+      (*it)->GetIncludeDirectories(includeDirs, l->second, "C", config);
       this->AppendIncludeDirectories(fout, includeDirs, emmited);
       }
     }
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index d4b57f4a0cfeca4ad0aaba7c7fee9e3ce11b2e31..19b55c62c50749f6857d60aeffc30b531a2673b4 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -287,7 +287,8 @@ const char* cmGeneratorTarget::GetCreateRuleVariable()
 }
 
 //----------------------------------------------------------------------------
-std::vector<std::string> cmGeneratorTarget::GetIncludeDirectories()
+std::vector<std::string> cmGeneratorTarget::GetIncludeDirectories(
+                                                          const char *config)
 {
   std::vector<std::string> includes;
   const char *prop = this->Target->GetProperty("INCLUDE_DIRECTORIES");
@@ -296,7 +297,6 @@ std::vector<std::string> cmGeneratorTarget::GetIncludeDirectories()
     return includes;
     }
 
-  const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
   cmListFileBacktrace lfbt;
   cmGeneratorExpression ge(lfbt);
 
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 8ea17d7e8c9838da9767c70768f41ef9f93d385d..a29a9f90473b658e642281c7441bc042f62c8c2f 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -72,7 +72,7 @@ public:
   const char* GetCreateRuleVariable();
 
   /** Get the include directories for this target.  */
-  std::vector<std::string> GetIncludeDirectories();
+  std::vector<std::string> GetIncludeDirectories(const char *config);
 
   std::string GetCompileDefinitions(const char *config = 0);
 
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 95c6807135b1230780c6fe66c2e0c015b107889c..30d8f18bb95e2121e04c19ac44a6d3d336df8a90 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1947,7 +1947,8 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
   BuildObjectListOrString dirs(this, this->XcodeVersion >= 30);
   BuildObjectListOrString fdirs(this, this->XcodeVersion >= 30);
   std::vector<std::string> includes;
-  this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt);
+  this->CurrentLocalGenerator->GetIncludeDirectories(includes, gtgt,
+                                                     "C", configName);
   std::set<cmStdString> emitted;
   emitted.insert("/System/Library/Frameworks");
   for(std::vector<std::string>::iterator i = includes.begin();
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index c7995a34f6be40c163dab4743f91d883183c1d43..4f4f7252b53c2cb32126e13700810f469b53baf1 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1324,7 +1324,8 @@ std::string cmLocalGenerator::GetIncludeFlags(
 //----------------------------------------------------------------------------
 void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
                                              cmGeneratorTarget* target,
-                                             const char* lang)
+                                             const char* lang,
+                                             const char *config)
 {
   // Need to decide whether to automatically include the source and
   // binary directories at the beginning of the include path.
@@ -1417,7 +1418,7 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
   // Get the target-specific include directories.
   std::vector<std::string> includes;
 
-  includes = target->GetIncludeDirectories();
+  includes = target->GetIncludeDirectories(config);
 
   // Support putting all the in-project include directories first if
   // it is requested by the project.
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 49bce3886f6faca2458ec9b79de330774ff3e1e7..bd582181c7609f613814f7a26ab74efafbd43f9f 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -212,7 +212,7 @@ public:
   /** Get the include flags for the current makefile and language.  */
   void GetIncludeDirectories(std::vector<std::string>& dirs,
                              cmGeneratorTarget* target,
-                             const char* lang = "C");
+                             const char* lang = "C", const char *config = 0);
 
   /** Compute the language used to compile the given source file.  */
   const char* GetSourceFileLanguage(const cmSourceFile& source);
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index 72b56e71c4c83f31f6f2d9180069059684fa682f..f15322be6ce5e8338b312192cc2e47a9c7b46c05 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -853,7 +853,8 @@ inline std::string removeQuotes(const std::string& s)
 
 
 std::string
-cmLocalVisualStudio6Generator::GetTargetIncludeOptions(cmTarget &target)
+cmLocalVisualStudio6Generator::GetTargetIncludeOptions(cmTarget &target,
+                                                       const char *config)
 {
   std::string includeOptions;
 
@@ -868,7 +869,7 @@ cmLocalVisualStudio6Generator::GetTargetIncludeOptions(cmTarget &target)
   for(int j=0; j < 2; ++j)
     {
     std::vector<std::string> includes;
-    this->GetIncludeDirectories(includes, gt);
+    this->GetIncludeDirectories(includes, gt, "C", config);
 
     std::vector<std::string>::iterator i;
     for(i = includes.begin(); i != includes.end(); ++i)
@@ -1147,7 +1148,15 @@ void cmLocalVisualStudio6Generator
 #endif
 
   // Get include options for this target.
-  std::string includeOptions = this->GetTargetIncludeOptions(target);
+  std::string includeOptionsDebug = this->GetTargetIncludeOptions(target,
+                                                                  "DEBUG");
+  std::string includeOptionsRelease = this->GetTargetIncludeOptions(target,
+                                                                  "RELEASE");
+  std::string includeOptionsRelWithDebInfo = this->GetTargetIncludeOptions(
+                                                            target,
+                                                            "RELWITHDEBINFO");
+  std::string includeOptionsMinSizeRel = this->GetTargetIncludeOptions(target,
+                                                                "MINSIZEREL");
 
   // Get extra linker options for this target type.
   std::string extraLinkOptions;
@@ -1560,8 +1569,15 @@ void cmLocalVisualStudio6Generator
     cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIONS_RELWITHDEBINFO",
                                  optionsRelWithDebInfo.c_str());
 
-    cmSystemTools::ReplaceString(line, "BUILD_INCLUDES",
-                                 includeOptions.c_str());
+    cmSystemTools::ReplaceString(line, "BUILD_INCLUDES_DEBUG",
+                                 includeOptionsDebug.c_str());
+    cmSystemTools::ReplaceString(line, "BUILD_INCLUDES_RELEASE",
+                                 includeOptionsRelease.c_str());
+    cmSystemTools::ReplaceString(line, "BUILD_INCLUDES_MINSIZEREL",
+                                 includeOptionsMinSizeRel.c_str());
+    cmSystemTools::ReplaceString(line, "BUILD_INCLUDES_RELWITHDEBINFO",
+                                 includeOptionsRelWithDebInfo.c_str());
+
     cmSystemTools::ReplaceString(line, "TARGET_VERSION_FLAG",
                                  targetVersionFlag.c_str());
     cmSystemTools::ReplaceString(line, "TARGET_IMPLIB_FLAG_DEBUG",
diff --git a/Source/cmLocalVisualStudio6Generator.h b/Source/cmLocalVisualStudio6Generator.h
index 9315d9700a5419f0d5c6897b7596a1c28c6f27ef..f45bc1758956bc5f5fe2637c7dca9567f5fc0d0a 100644
--- a/Source/cmLocalVisualStudio6Generator.h
+++ b/Source/cmLocalVisualStudio6Generator.h
@@ -90,7 +90,7 @@ private:
                           std::string& options);
   void OutputObjects(cmTarget& target, const char* tool,
                      std::string& options);
-  std::string GetTargetIncludeOptions(cmTarget &target);
+  std::string GetTargetIncludeOptions(cmTarget &target, const char *config);
   std::vector<std::string> Configurations;
 
   std::string GetConfigName(std::string const& configuration) const;
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 33d6e0585d6bf5d90886f82974cceb6a259fa733..f9a2d320091062d7b5f93b94ac1f637e1211c9f8 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -814,7 +814,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
   targetOptions.OutputAdditionalOptions(fout, "\t\t\t\t", "\n");
   fout << "\t\t\t\tAdditionalIncludeDirectories=\"";
   std::vector<std::string> includes;
-  this->GetIncludeDirectories(includes, gt);
+  this->GetIncludeDirectories(includes, gt, "C", configName);
   std::vector<std::string>::iterator i = includes.begin();
   for(;i != includes.end(); ++i)
     {
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 5cc67e2e4b547882f60502f4bfcd950ac708d20d..3d02d6a047309198a534bd4d5acc0a52f9af531c 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1057,8 +1057,11 @@ void cmMakefileTargetGenerator::WriteTargetDependRules()
   *this->InfoFileStream
     << "SET(CMAKE_C_TARGET_INCLUDE_PATH\n";
   std::vector<std::string> includes;
+
+  const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
   this->LocalGenerator->GetIncludeDirectories(includes,
-                                              this->GeneratorTarget);
+                                              this->GeneratorTarget,
+                                              "C", config);
   for(std::vector<std::string>::iterator i = includes.begin();
       i != includes.end(); ++i)
     {
@@ -1543,8 +1546,11 @@ std::string cmMakefileTargetGenerator::GetFrameworkFlags()
   emitted.insert("/System/Library/Frameworks");
 #endif
   std::vector<std::string> includes;
+
+  const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
   this->LocalGenerator->GetIncludeDirectories(includes,
-                                              this->GeneratorTarget);
+                                              this->GeneratorTarget,
+                                              "C", config);
   std::vector<std::string>::iterator i;
   // check all include directories for frameworks as this
   // will already have added a -F for the framework
@@ -1849,8 +1855,10 @@ void cmMakefileTargetGenerator::AddIncludeFlags(std::string& flags,
 
 
   std::vector<std::string> includes;
+  const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
   this->LocalGenerator->GetIncludeDirectories(includes,
-                                              this->GeneratorTarget, lang);
+                                              this->GeneratorTarget,
+                                              lang, config);
 
   std::string includeFlags =
     this->LocalGenerator->GetIncludeFlags(includes, lang, useResponseFile);
@@ -1953,8 +1961,10 @@ void cmMakefileTargetGenerator::AddFortranFlags(std::string& flags)
      this->Makefile->GetDefinition("CMAKE_Fortran_MODPATH_FLAG"))
     {
     std::vector<std::string> includes;
+    const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
     this->LocalGenerator->GetIncludeDirectories(includes,
-                                                this->GeneratorTarget);
+                                                this->GeneratorTarget,
+                                                "C", config);
     for(std::vector<std::string>::const_iterator idi = includes.begin();
         idi != includes.end(); ++idi)
       {
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 612e047eb195d8cda6c7eaddf5fc26987a01410b..ec312e63e65d42404e28c494f71bbe9b6771b32f 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -152,8 +152,10 @@ cmNinjaTargetGenerator::ComputeFlagsForObject(cmSourceFile *source,
   // Add include directory flags.
   {
   std::vector<std::string> includes;
-  this->LocalGenerator->GetIncludeDirectories(includes, this->GeneratorTarget,
-                                              language.c_str());
+  const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
+  this->LocalGenerator->GetIncludeDirectories(includes,
+                                              this->GeneratorTarget,
+                                              language.c_str(), config);
   std::string includeFlags =
     this->LocalGenerator->GetIncludeFlags(includes, language.c_str(),
     language == "RC" ? true : false); // full include paths for RC
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index ab57a32ebe4aaabbcd5b28c58ee2bc83d2a576c8..1e37ca532441ea17e047b1d2a624af6fc3d67a44 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1586,12 +1586,13 @@ void cmVisualStudio10TargetGenerator::WriteItemDefinitionGroups()
   std::vector<std::string> *configs =
     static_cast<cmGlobalVisualStudio7Generator *>
     (this->GlobalGenerator)->GetConfigurations();
-  std::vector<std::string> includes;
-  this->LocalGenerator->GetIncludeDirectories(includes,
-                                              this->GeneratorTarget);
   for(std::vector<std::string>::iterator i = configs->begin();
       i != configs->end(); ++i)
     {
+    std::vector<std::string> includes;
+    this->LocalGenerator->GetIncludeDirectories(includes,
+                                                this->GeneratorTarget,
+                                                "C", i->c_str());
     this->WritePlatformConfigTag("ItemDefinitionGroup", i->c_str(), 1);
     *this->BuildFileStream << "\n";
     //    output cl compile flags <ClCompile></ClCompile>
diff --git a/Templates/DLLHeader.dsptemplate b/Templates/DLLHeader.dsptemplate
index c752fdbf467402433f22ea510d3eb5026877cfdb..d9bccaf5610fe11bb780266d96ddebe0cce2f96d 100644
--- a/Templates/DLLHeader.dsptemplate
+++ b/Templates/DLLHeader.dsptemplate
@@ -59,13 +59,13 @@ RSC=rc.exe
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "_WINDOWS" /D "_USRDLL" OUTPUT_LIBNAME_EXPORTS /FD /c
 # ADD CPP /nologo /D "WIN32" /D "_WINDOWS" /D "_USRDLL"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELEASE EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELEASE
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELEASE /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELEASE
 BSC32=bscmake.exe
@@ -93,13 +93,13 @@ CMAKE_CUSTOM_RULE_CODE_RELEASE
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" OUTPUT_LIBNAME_EXPORTS /FD /c
 # ADD CPP /nologo /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES  OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_DEBUG EXTRA_DEFINES  OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_DEBUG
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "_DEBUG"
+# ADD RSC BUILD_INCLUDES_DEBUG /l 0x409 /d "_DEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_DEBUG
 BSC32=bscmake.exe
@@ -129,13 +129,13 @@ CMAKE_CUSTOM_RULE_CODE_DEBUG
 # ADD BASE CPP /nologo /D "WIN32"  /D "_WINDOWS" /D "_USRDLL" /FD /c  OUTPUT_LIBNAME_EXPORTS
 # SUBTRACT BASE CPP /YX
 # ADD CPP /nologo /D "WIN32" /D "_WINDOWS" /D "_USRDLL"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_MINSIZEREL EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_MINSIZEREL
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_MINSIZEREL /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_MINSIZEREL
 BSC32=bscmake.exe
@@ -163,13 +163,13 @@ CMAKE_CUSTOM_RULE_CODE_MINSIZEREL
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "_WINDOWS" /D "_USRDLL" OUTPUT_LIBNAME_EXPORTS /FD /c
 # ADD CPP /nologo /D "WIN32" /D "_WINDOWS" /D "_USRDLL"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES  OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELWITHDEBINFO EXTRA_DEFINES  OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELWITHDEBINFO
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELWITHDEBINFO /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELWITHDEBINFO
 BSC32=bscmake.exe
diff --git a/Templates/EXEHeader.dsptemplate b/Templates/EXEHeader.dsptemplate
index f48eaccbc6c89beeba2b117343e2f2785dffeb90..3a6d2feb114c4a86c8414fc6390b33334a8ce2ce 100644
--- a/Templates/EXEHeader.dsptemplate
+++ b/Templates/EXEHeader.dsptemplate
@@ -58,11 +58,11 @@ RSC=rc.exe
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo  /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
 # ADD CPP /nologo  /D "WIN32"  /D "NDEBUG" /D "_CONSOLE" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELEASE EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELEASE
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELEASE /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELEASE
 BSC32=bscmake.exe
@@ -90,13 +90,13 @@ CMAKE_CUSTOM_RULE_CODE_RELEASE
 # PROP Target_Dir ""
 # ADD BASE CPP   /D "WIN32" /D "_DEBUG" /D "_CONSOLE"  /FD /GZ /c
 # ADD CPP /nologo  /D "WIN32"  /D "_DEBUG" /D "_CONSOLE" /FD /GZ /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_DEBUG EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_DEBUG
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "_DEBUG"
+# ADD RSC BUILD_INCLUDES_DEBUG /l 0x409 /d "_DEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_DEBUG
 BSC32=bscmake.exe
@@ -122,12 +122,12 @@ CMAKE_CUSTOM_RULE_CODE_DEBUG
 # PROP Intermediate_Dir "MinSizeRel"
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo  /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
-# ADD CPP /nologo  /D "WIN32" BUILD_INCLUDES EXTRA_DEFINES /D "NDEBUG" /D "_CONSOLE"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP /nologo  /D "WIN32" BUILD_INCLUDES_MINSIZEREL EXTRA_DEFINES /D "NDEBUG" /D "_CONSOLE"  /FD /c
+# ADD CPP BUILD_INCLUDES_MINSIZEREL EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_MINSIZEREL
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_MINSIZEREL /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_MINSIZEREL
 BSC32=bscmake.exe
@@ -155,11 +155,11 @@ CMAKE_CUSTOM_RULE_CODE_MINSIZEREL
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo  /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
 # ADD CPP /nologo  /D "WIN32"  /D "NDEBUG" /D "_CONSOLE" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELWITHDEBINFO EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELWITHDEBINFO
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELWITHDEBINFO /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELWITHDEBINFO
 BSC32=bscmake.exe
diff --git a/Templates/EXEWinHeader.dsptemplate b/Templates/EXEWinHeader.dsptemplate
index e0d22647908f2e1be2267cded0ec6b5e6e938d00..350e3ea00991f24e487fe53360d340f39d995922 100644
--- a/Templates/EXEWinHeader.dsptemplate
+++ b/Templates/EXEWinHeader.dsptemplate
@@ -58,13 +58,13 @@ RSC=rc.exe
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
 # ADD CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELEASE EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELEASE
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELEASE /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELEASE
 BSC32=bscmake.exe
@@ -92,13 +92,13 @@ CMAKE_CUSTOM_RULE_CODE_RELEASE
 # PROP Target_Dir ""
 # ADD BASE CPP  /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
 # ADD CPP /nologo  /D "WIN32"  /D "_DEBUG" /D "_WINDOWS" /FD /GZ /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_DEBUG EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_DEBUG
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "_DEBUG"
+# ADD RSC BUILD_INCLUDES_DEBUG /l 0x409 /d "_DEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_DEBUG
 BSC32=bscmake.exe
@@ -125,11 +125,11 @@ CMAKE_CUSTOM_RULE_CODE_DEBUG
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
 # ADD CPP /nologo  /D "WIN32"  /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_MINSIZEREL EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_MINSIZEREL
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_MINSIZEREL /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_MINSIZEREL
 BSC32=bscmake.exe
@@ -157,13 +157,13 @@ CMAKE_CUSTOM_RULE_CODE_MINSIZEREL
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
 # ADD CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
+# ADD CPP BUILD_INCLUDES_RELWITHDEBINFO EXTRA_DEFINES OUTPUT_LIBNAME_EXPORTS
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELWITHDEBINFO
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELWITHDEBINFO /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELWITHDEBINFO
 BSC32=bscmake.exe
diff --git a/Templates/staticLibHeader.dsptemplate b/Templates/staticLibHeader.dsptemplate
index 16b784e175f4d9b1e680e48b2608b842448f9bdb..a8892e1246a58fe07a5b9b22971668fdc980ca5b 100644
--- a/Templates/staticLibHeader.dsptemplate
+++ b/Templates/staticLibHeader.dsptemplate
@@ -55,11 +55,11 @@ RSC=rc.exe
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_LIB"  /FD /c
 # ADD CPP /nologo /D "NDEBUG" /D "WIN32" /D "_LIB"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES 
+# ADD CPP BUILD_INCLUDES_RELEASE EXTRA_DEFINES
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELEASE
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELEASE /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELEASE
 BSC32=bscmake.exe
@@ -85,11 +85,11 @@ CMAKE_CUSTOM_RULE_CODE_RELEASE
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "_DEBUG" /D "_LIB"  /FD /c
 # ADD CPP /nologo /D "_DEBUG" /D "WIN32" /D "_LIB"  /FD /GZ /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES 
+# ADD CPP BUILD_INCLUDES_DEBUG EXTRA_DEFINES
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_DEBUG
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "_DEBUG"
+# ADD RSC BUILD_INCLUDES_DEBUG /l 0x409 /d "_DEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_DEBUG
 BSC32=bscmake.exe
@@ -116,11 +116,11 @@ CMAKE_CUSTOM_RULE_CODE_DEBUG
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_ATL_DLL" /FD /c
 # ADD CPP /nologo /D "NDEBUG" /D "_ATL_DLL"  /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES 
+# ADD CPP BUILD_INCLUDES_MINSIZEREL EXTRA_DEFINES
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_MINSIZEREL
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_MINSIZEREL /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_MINSIZEREL
 BSC32=bscmake.exe
@@ -146,11 +146,11 @@ CMAKE_CUSTOM_RULE_CODE_MINSIZEREL
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /D "WIN32" /D "NDEBUG" /D "_LIB"  /FD /c
 # ADD CPP /nologo /D "NDEBUG" /D "WIN32" /D "_LIB"  /FD /c
-# ADD CPP BUILD_INCLUDES EXTRA_DEFINES 
+# ADD CPP BUILD_INCLUDES_RELWITHDEBINFO EXTRA_DEFINES
 # ADD CPP CMAKE_CXX_FLAGS
 # ADD CPP CMAKE_CXX_FLAGS_RELWITHDEBINFO
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC BUILD_INCLUDES /l 0x409 /d "NDEBUG"
+# ADD RSC BUILD_INCLUDES_RELWITHDEBINFO /l 0x409 /d "NDEBUG"
 # ADD RSC COMPILE_DEFINITIONS
 # ADD RSC COMPILE_DEFINITIONS_RELWITHDEBINFO
 BSC32=bscmake.exe