diff --git a/Misc/NEWS b/Misc/NEWS
index 3da2567562b..619feb2e35c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -298,6 +298,9 @@ Tests
Build
-----
+- Add workaround for VS 2010 nmake clean issue. VS 2010 doesn't set up PATH
+ for nmake.exe correctly.
+
- Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
- Issue #19520: Fix compiler warning in the _sha3 module on 32bit Windows.
diff --git a/PC/python3.mak b/PC/python3.mak
index 8f9d46840b8..fb8e7aac097 100644
--- a/PC/python3.mak
+++ b/PC/python3.mak
@@ -5,6 +5,10 @@ $(OutDir)python34stub.lib: python34stub.def
lib /def:python34stub.def /out:$(OutDir)python34stub.lib /MACHINE:$(MACHINE)
clean:
- del $(OutDir)python3.dll $(OutDir)python3.lib $(OutDir)python34stub.lib $(OutDir)python3.exp $(OutDir)python34stub.exp
+ IF EXIST $(OutDir)python3.dll del $(OutDir)python3.dll
+ IF EXIST $(OutDir)python3.lib del $(OutDir)python3.lib
+ IF EXIST $(OutDir)python34stub.lib del $(OutDir)python34stub.lib
+ IF EXIST $(OutDir)python3.exp del $(OutDir)python3.exp
+ IF EXIST $(OutDir)python34stub.exp del $(OutDir)python34stub.exp
rebuild: clean $(OutDir)python3.dll
diff --git a/PCbuild/python3dll.vcxproj b/PCbuild/python3dll.vcxproj
index b3459b5fec1..bc8ff31ca22 100644
--- a/PCbuild/python3dll.vcxproj
+++ b/PCbuild/python3dll.vcxproj
@@ -99,7 +99,7 @@ nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)
@@ -111,7 +111,7 @@ nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)
@@ -123,7 +123,7 @@ nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)
@@ -135,7 +135,7 @@ nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)
@@ -147,7 +147,7 @@ nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x86 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)
@@ -159,7 +159,7 @@ nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir)
cd $(ProjectDir)\..\PC
nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) rebuild
cd $(ProjectDir)\..\PC
-nmake /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
+"$(VSInstallDir)\VC\bin\nmake.exe" /f python3.mak MACHINE=x64 OutDir=$(OutDir) clean
$(OutDir)python3.dll
$(NMakePreprocessorDefinitions)
$(NMakeIncludeSearchPath)