diff --git a/Lib/compiler/ast.py b/Lib/compiler/ast.py
index 6b78fdd..accda45 100644
--- a/Lib/compiler/ast.py
+++ b/Lib/compiler/ast.py
@@ -4,9 +4,9 @@
 """
 from consts import CO_VARARGS, CO_VARKEYWORDS
 
-def flatten(list):
+def flatten(seq):
     l = []
-    for elt in list:
+    for elt in seq:
         t = type(elt)
         if t is tuple or t is list:
             for elt2 in flatten(elt):
@@ -15,8 +15,8 @@
             l.append(elt)
     return l
 
-def flatten_nodes(list):
-    return [n for n in flatten(list) if isinstance(n, Node)]
+def flatten_nodes(seq):
+    return [n for n in flatten(seq) if isinstance(n, Node)]
 
 nodes = {}
 
diff --git a/Lib/test/test_compiler.py b/Lib/test/test_compiler.py
index 32302a1..6bfe225 100644
--- a/Lib/test/test_compiler.py
+++ b/Lib/test/test_compiler.py
@@ -1,4 +1,5 @@
 import compiler
+from compiler.ast import flatten
 import os
 import test.test_support
 import unittest
@@ -60,6 +61,10 @@
         for child in node.getChildNodes():
             self.check_lineno(child)
 
+    def testFlatten(self):
+        self.assertEquals(flatten([1, [2]]), [1, 2])
+        self.assertEquals(flatten((1, (2,))), [1, 2])
+
 NOLINENO = (compiler.ast.Module, compiler.ast.Stmt, compiler.ast.Discard)
 
 ###############################################################################
diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py
index 4ccc54d..e6aa350 100644
--- a/Tools/compiler/astgen.py
+++ b/Tools/compiler/astgen.py
@@ -234,9 +234,9 @@
 """
 from consts import CO_VARARGS, CO_VARKEYWORDS
 
-def flatten(list):
+def flatten(seq):
     l = []
-    for elt in list:
+    for elt in seq:
         t = type(elt)
         if t is tuple or t is list:
             for elt2 in flatten(elt):
@@ -245,8 +245,8 @@
             l.append(elt)
     return l
 
-def flatten_nodes(list):
-    return [n for n in flatten(list) if isinstance(n, Node)]
+def flatten_nodes(seq):
+    return [n for n in flatten(seq) if isinstance(n, Node)]
 
 nodes = {}
 
