diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 6751dc0f6b9658224b098e5700eb5b94af216d55..5acd60edea53386a710b001a3b04f8a2e1935c4e 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -1956,11 +1956,13 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
             }
 
             if ( !filter.CompilerTool.PrecompiledHeaderThrough.isEmpty() ) {
-
                 xml << tag("PrecompiledHeaderFile")
                     << attrTag("Condition", condition)
-                    << valueTag(filter.CompilerTool.PrecompiledHeaderThrough)
-                    << tag("PrecompiledHeader")
+                    << valueTag(filter.CompilerTool.PrecompiledHeaderThrough);
+            }
+
+            if (filter.CompilerTool.UsePrecompiledHeader != pchUnset) {
+                xml << tag("PrecompiledHeader")
                     << attrTag("Condition", condition)
                     << valueTag(toString(filter.CompilerTool.UsePrecompiledHeader));
             }
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index f8e67718f767b28619e89367ed5fb88b76271de6..aa2d40ad773bbe01cff82b0a4bc10df555bf7f63 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2237,7 +2237,8 @@ void VCFilter::modifyPCHstage(QString str)
     useCompilerTool = true;
     // Setup PCH options
     CompilerTool.UsePrecompiledHeader     = (isCFile ? pchNone : pchCreateUsingSpecific);
-    CompilerTool.PrecompiledHeaderThrough = (isCPPFile ? Project->precompHFilename : QString("$(NOINHERIT)"));
+    if (isCFile)
+        CompilerTool.PrecompiledHeaderThrough = QLatin1String("$(NOINHERIT)");
     CompilerTool.ForcedIncludeFiles       = QStringList("$(NOINHERIT)");
 }