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)
 
 ###############################################################################
