diff --git a/Tools/msi/README.txt b/Tools/msi/README.txt
index 1e41cc1..25dcf32 100644
--- a/Tools/msi/README.txt
+++ b/Tools/msi/README.txt
@@ -9,7 +9,7 @@
 For an official release, the installer should be built with the
 Tools/msi/buildrelease.bat script and environment variables:
 
-    set PYTHON=<path to Python 2.7>
+    set PYTHON=<path to Python 2.7 or 3.4>
     set SPHINXBUILD=<path to sphinx-build.exe>
     set PATH=<path to Mercurial (hg.exe)>;
              <path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -87,7 +87,7 @@
 For an official release, the installer should be built with the
 Tools/msi/buildrelease.bat script:
 
-    set PYTHON=<path to Python 2.7>
+    set PYTHON=<path to Python 2.7 or 3.4>
     set SPHINXBUILD=<path to sphinx-build.exe>
     set PATH=<path to Mercurial (hg.exe)>;
              <path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -229,6 +229,11 @@
     Every package should reference this property to include upgrade
     information.
 
+  OptionalFeature (Component)
+    Packages that may be enabled or disabled should reference this component
+    and have an OPTIONAL_FEATURES entry in the bootstrap application to
+    properly handle Modify and Upgrade.
+
 The .wxl_template file is specially handled by the build system for this
 project to perform {{substitutions}} as defined in msi.targets. They
 should be included in projects as <WxlTemplate> items, where .wxl files
@@ -326,14 +331,11 @@
 
 .\python3x.dll      The core interpreter
 .\python3.dll       The stable ABI reference
-.\appcrt140.dll     Microsoft Visual C Runtime
-.\desktopcrt140.dll Microsoft Visual C Runtime
-.\vcruntime140.dll  Microsoft Visual C Runtime
 
 When installed for all users, the following files are installed to
 "%SystemRoot%" (typically "C:\Windows") to ensure they are always
 available on PATH. (See Launching Python below.) For the current user,
-they are installed in the Python install directory.
+they are installed in "%LocalAppData%\Programs\Python\PyLauncher".
 
 .\py[w].exe         PEP 397 launcher
 
@@ -363,8 +365,10 @@
 
 When the core Python executables are installed, a key "InstallPath" is
 created within the root key with its default value set to the
-executable's install directory. Within this key, a key "InstallGroup" is
-created with its default value set to the product name "Python 3.X".
+executable's install directory. A value named "ExecutablePath" is added
+with the full path to the main Python interpreter, and a key
+"InstallGroup" is created with its default value set to the product
+name "Python 3.X".
 
 When the Python standard library is installed, a key "PythonPath" is
 created within the root key with its default value set to the full path
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
index 7283559..2166304 100644
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -291,6 +291,7 @@
             hr = BalGetStringVariable(L"TargetDir", &targetDir);
             if (FAILED(hr) || !targetDir || !targetDir[0]) {
                 ReleaseStr(targetDir);
+                targetDir = nullptr;
 
                 hr = BalGetStringVariable(
                     installAllUsers ? L"DefaultAllUsersTargetDir" : L"DefaultJustForMeTargetDir",
diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets
index 363c4e3..1ff0001 100644
--- a/Tools/msi/bundle/bundle.targets
+++ b/Tools/msi/bundle/bundle.targets
@@ -72,8 +72,18 @@
         <Package Include="..\tools\tools*.wixproj" />
     </ItemGroup>
     
+    <PropertyGroup>
+        <BuildPackagesTargets>Build</BuildPackagesTargets>
+    </PropertyGroup>
+    
+    <Target Name="_SetRebuildTarget" BeforeTargets="BeforeRebuild">
+        <PropertyGroup>
+            <BuildPackagesTargets>Rebuild</BuildPackagesTargets>
+        </PropertyGroup>
+    </Target>
+    
     <Target Name="BuildPackages" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
-        <MSBuild Projects="@(Package)" BuildInParallel="true" />
+        <MSBuild Projects="@(Package)" Targets="$(BuildPackagesTargets)" BuildInParallel="true" />
     </Target>
     
     <Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
index 1d9f0f0..2d13aef 100644
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -53,8 +53,13 @@
         <CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
         <DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
 
-        <RevisionNumber>$(ReleaseLevelNumber)</RevisionNumber>
-        <RevisionNumber Condition="!$(BuildForRelease)">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+        <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0</InstallerVersion>
+    </PropertyGroup>
+    
+    <PropertyGroup Condition="!$(BuildForRelease)">
+        <RevisionNumber Condition="'$(RevisionNumber)' == ''">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+        <PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)dev$(RevisionNumber)</PythonVersion>
+        <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(RevisionNumber).0</InstallerVersion>
     </PropertyGroup>
     
     <PropertyGroup>
@@ -62,7 +67,7 @@
         <Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
         <DefineConstants>
             $(DefineConstants);
-            Version=$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0;
+            Version=$(InstallerVersion);
             ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
             LongVersion=$(PythonVersion);
             MajorVersionNumber=$(MajorVersionNumber);
