Merged revisions 64185-64196 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64185 | martin.v.loewis | 2008-06-12 20:38:47 +0200 (Do, 12 Jun 2008) | 1 line

  Switch to Tcl/Tk 8.5.2.
........
  r64189 | martin.v.loewis | 2008-06-12 20:52:00 +0200 (Do, 12 Jun 2008) | 1 line

  Switch to Tcl/Tk 8.5.
........
  r64191 | martin.v.loewis | 2008-06-12 21:00:14 +0200 (Do, 12 Jun 2008) | 1 line

  Revert bogus disabling of Tcl and Tk.
........
  r64194 | martin.v.loewis | 2008-06-12 21:51:59 +0200 (Do, 12 Jun 2008) | 1 line

  Split Tcl make targets into separate ones.
........
  r64195 | martin.v.loewis | 2008-06-12 22:06:18 +0200 (Do, 12 Jun 2008) | 1 line

  Support file names which include '+' (for Tk 8.5).
........
  r64196 | martin.v.loewis | 2008-06-12 22:07:53 +0200 (Do, 12 Jun 2008) | 1 line

  Fix Tcl/Tk license file in tcl8*/tk8*, include Tix license.
........
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index e5d73c7..9245a22 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -328,6 +328,7 @@
     #str = str.replace(".", "_") # colons are allowed
     str = str.replace(" ", "_")
     str = str.replace("-", "_")
+    str = str.replace("+", "_")
     if str[0] in string.digits:
         str = "_"+str
     assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str
@@ -472,6 +473,7 @@
                         [(feature.id, component)])
 
     def make_short(self, file):
+        file = re.sub(r'[\?|><:/*"+,;=\[\]]', '_', file) # restrictions on short names
         parts = file.split(".")
         if len(parts)>1:
             suffix = parts[-1].upper()
@@ -500,7 +502,6 @@
                 if pos in (10, 100, 1000):
                     prefix = prefix[:-1]
         self.short_names.add(file)
-        assert not re.search(r'[\?|><:/*"+,;=\[\]]', file) # restrictions on short names
         return file
 
     def add_file(self, file, src=None, version=None, language=None):