diff --git a/Tools/scripts/eptags.py b/Tools/scripts/eptags.py
index 86b6ee1..58021b4 100755
--- a/Tools/scripts/eptags.py
+++ b/Tools/scripts/eptags.py
@@ -40,7 +40,7 @@
 			name = line[a2:b2]
 			pat = line[a:b]
 			tag = pat + '\177' + `lineno` + ',' + `charno` + '\n'
-			tags.append(name, tag)
+			tags.append((name, tag))
 			size = size + len(tag)
 		charno = charno + len(line)
 	outfp.write('\f\n' + file + ',' + `size` + '\n')
diff --git a/Tools/scripts/ifdef.py b/Tools/scripts/ifdef.py
index ff64425..939bea9 100755
--- a/Tools/scripts/ifdef.py
+++ b/Tools/scripts/ifdef.py
@@ -79,16 +79,16 @@
 				ko = 0
 			word = words[1]
 			if word in defs:
-				stack.append(ok, ko, word)
+				stack.append((ok, ko, word))
 				if not ko: ok = 0
 			elif word in undefs:
-				stack.append(ok, not ko, word)
+				stack.append((ok, not ko, word))
 				if ko: ok = 0
 			else:
-				stack.append(ok, -1, word)
+				stack.append((ok, -1, word))
 				if ok: fpo.write(line)
 		elif keyword == 'if':
-			stack.append(ok, -1, '')
+			stack.append((ok, -1, ''))
 			if ok: fpo.write(line)
 		elif keyword == 'else' and stack:
 			s_ok, s_ko, s_word = stack[-1]
diff --git a/Tools/scripts/texi2html.py b/Tools/scripts/texi2html.py
index 19cbe27..8c747aa 100755
--- a/Tools/scripts/texi2html.py
+++ b/Tools/scripts/texi2html.py
@@ -644,7 +644,7 @@
 
     def close_footnote(self):
         id = len(self.footnotes) + 1
-        self.footnotes.append(id, self.collectsavings())
+        self.footnotes.append((id, self.collectsavings()))
 
     def writefootnotes(self):
         self.write(self.FN_HEADER)
@@ -993,7 +993,7 @@
             for i in self.numbering:
                 x = x + `i` + '.'
             args = x + ' ' + args
-            self.contents.append(level, args, self.nodename)
+            self.contents.append((level, args, self.nodename))
         self.write('<', type, '>')
         self.expand(args)
         self.write('</', type, '>\n')
@@ -1362,7 +1362,7 @@
     def do_vindex(self, args): self.index('vr', args)
 
     def index(self, name, args):
-        self.whichindex[name].append(args, self.nodename)
+        self.whichindex[name].append((args, self.nodename))
 
     def do_synindex(self, args):
         words = string.split(args)
@@ -1409,7 +1409,7 @@
                     break
                 i = mo.end()
                 sortkey = sortkey[i:]
-            index1.append(sortkey, key, node)
+            index1.append((sortkey, key, node))
         del index[:]
         index1.sort()
         self.write('<DL COMPACT>\n')
