Issue #2271: Set SecureCustomProperties so that installation will properly
use the TARGETDIR even for unprivileged users.
diff --git a/Misc/NEWS b/Misc/NEWS
index 72361f9..b2da2c5 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -125,6 +125,9 @@
 Build
 -----
 
+- Issue #2271: Set SecureCustomProperties so that installation will properly
+  use the TARGETDIR even for unprivileged users.
+
 - Allow passing the MSI file name to merge.py.
 
 - Issue #3758: Rename the 'check' target to 'patchcheck' so as to not clash 
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 44bca1b..22987b1 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -250,6 +250,8 @@
              (upgrade_code_snapshot, start, "%s.%d.0" % (major, int(minor)+1),
               None, migrate_features, None, "REMOVEOLDSNAPSHOT")])
         props = "REMOVEOLDSNAPSHOT;REMOVEOLDVERSION"
+
+    props += ";TARGETDIR;DLLDIR"
     # Installer collects the product codes of the earlier releases in
     # these properties. In order to allow modification of the properties,
     # they must be declared as secure. See "SecureCustomProperties Property"