Index: Python/ast.c =================================================================== --- Python/ast.c (revision 43165) +++ Python/ast.c (working copy) @@ -189,11 +189,11 @@ node *ch; struct compiling c; - if (flags && flags->cf_flags & PyCF_SOURCE_IS_UTF8) { - c.c_encoding = "utf-8"; - } else if (TYPE(n) == encoding_decl) { + if (TYPE(n) == encoding_decl) { c.c_encoding = STR(n); n = CHILD(n, 0); + } else if (flags && flags->cf_flags & PyCF_SOURCE_IS_UTF8) { + c.c_encoding = "utf-8"; } else { c.c_encoding = NULL; }