diff --git a/Tools/msi/make_zip.proj b/Tools/msi/make_zip.proj
index 766fe85..d2e031f 100644
--- a/Tools/msi/make_zip.proj
+++ b/Tools/msi/make_zip.proj
@@ -14,6 +14,7 @@
         <TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName>
         <TargetExt>.zip</TargetExt>
         <TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
+        <CleanCommand>rmdir /q/s "$(IntermediateOutputPath)\zip_$(ArchName)"</CleanCommand>
         <Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
         <Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
         <Environment>set DOC_FILENAME=python$(PythonVersion).chm
@@ -23,6 +24,7 @@
     <Target Name="_Build">
         <Exec Command="setlocal
 $(Environment)
+$(CleanCommand)
 $(Arguments)" />
     </Target>
 
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
index c256008..96fdad2 100644
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -15,6 +15,20 @@
 DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe)$', re.IGNORECASE)
 PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE)
 
+EXCLUDE_FROM_LIBRARY = {
+    '__pycache__',
+    'ensurepip',
+    'idlelib',
+    'pydoc_data',
+    'site-packages',
+    'tkinter',
+    'turtledemo',
+}
+
+EXCLUDE_FILE_FROM_LIBRARY = {
+    'bdist_wininst.py',
+}
+
 def is_not_debug(p):
     if DEBUG_RE.search(p.name):
         return False
@@ -37,16 +51,21 @@
 def include_in_lib(p):
     name = p.name.lower()
     if p.is_dir():
-        if name in {'__pycache__', 'ensurepip', 'idlelib', 'pydoc_data', 'tkinter', 'turtledemo'}:
+        if name in EXCLUDE_FROM_LIBRARY:
             return False
         if name.startswith('plat-'):
             return False
         if name == 'test' and p.parts[-2].lower() == 'lib':
             return False
+        if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
+            return False
         return True
 
+    if name in EXCLUDE_FILE_FROM_LIBRARY:
+        return False
+
     suffix = p.suffix.lower()
-    return suffix not in {'.pyc', '.pyo'}
+    return suffix not in {'.pyc', '.pyo', '.exe'}
 
 def include_in_tools(p):
     if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}:
