diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index a184973..f266fcc 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -103,8 +103,9 @@
 msvcr71_uuid = "{8666C8DD-D0B4-4B42-928E-A69E32FA5D4D}"
 pythondll_uuid = {
     "24":"{9B81E618-2301-4035-AC77-75D9ABEB7301}",
-    "25":"{2e41b118-38bd-4c1b-a840-6977efd1b911}"
+    "25":"{2e41b118-38bd-4c1b-a840-6977efd1b911}",
     "26":"{34ebecac-f046-4e1c-b0e3-9bac3cdaacfa}",
+    "30":"{6953bc3b-6768-4291-8410-7914ce6e2ca8}",
     } [major+minor]
 
 # Build the mingw import library, libpythonXY.a
@@ -124,14 +125,14 @@
     export_match = re.compile(r"^_imp__(.*) in python\d+\.dll").match
 
     f = open(def_file,'w')
-    print("LIBRARY %s" % dll_file, file=f)
-    print("EXPORTS", file=f)
+    f.write("LIBRARY %s\n" % dll_file)
+    f.write("EXPORTS\n")
 
     nm_pipe = os.popen(nm_command)
     for line in nm_pipe.readlines():
         m = export_match(line)
         if m:
-            print(m.group(1), file=f)
+            f.write(m.group(1)+"\n")
     f.close()
     exit = nm_pipe.close()
 
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index 9823e2a..8a232bf 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -202,7 +202,7 @@
     v = seqmsi.OpenView("SELECT * FROM _Tables");
     v.Execute(None)
     f = open(destpath, "w")
-    print("import msilib,os;dirname=os.path.dirname(__file__)", file=f)
+    f.write("import msilib,os;dirname=os.path.dirname(__file__)\n")
     tables = []
     while 1:
         r = v.Fetch()
@@ -364,9 +364,9 @@
             logical = self.gen_id(dir, file)
         self.index += 1
         if full.find(" ")!=-1:
-            print('"%s" %s' % (full, logical), file=self.file)
+            self.file.write('"%s" %s\n' % (full, logical))
         else:
-            print('%s %s' % (full, logical), file=self.file)
+            self.file.write('%s %s\n' % (full, logical))
         return self.index, logical
 
     def commit(self, db):
@@ -390,8 +390,8 @@
             cabarc = "cabarc.exe"
         cmd = r'"%s" -m lzx:21 n %s.cab @%s.txt' % (cabarc, self.name, self.name)
         p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE,
-                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)[0]
-        for line in (p.stdout, p.stdin):
+                             stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        for line in p.stdout:
             if line.startswith("  -- adding "):
                 sys.stdout.write(".")
             else:
