Merged revisions 76776 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r76776 | benjamin.peterson | 2009-12-12 19:23:39 -0600 (Sat, 12 Dec 2009) | 25 lines

  Merged revisions 76534,76538,76628,76701,76774 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r76534 | martin.v.loewis | 2009-11-26 02:42:05 -0600 (Thu, 26 Nov 2009) | 2 lines

    Fix typo.
  ........
    r76538 | georg.brandl | 2009-11-26 14:48:25 -0600 (Thu, 26 Nov 2009) | 1 line

    #7400: typo.
  ........
    r76628 | andrew.kuchling | 2009-12-02 08:27:11 -0600 (Wed, 02 Dec 2009) | 1 line

    Markup fixes
  ........
    r76701 | andrew.kuchling | 2009-12-07 20:37:05 -0600 (Mon, 07 Dec 2009) | 1 line

    Typo fix; grammar fix
  ........
    r76774 | benjamin.peterson | 2009-12-12 18:54:15 -0600 (Sat, 12 Dec 2009) | 1 line

    account for PyObject_IsInstance's new ability to fail
  ........
................
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index c33a37e..7953297 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -529,6 +529,7 @@
 	int mode = -1;
 	int dont_inherit = 0;
 	int supplied_flags = 0;
+	int is_ast;
 	PyCompilerFlags cf;
 	PyObject *cmd;
 	static char *kwlist[] = {"source", "filename", "mode", "flags",
@@ -567,7 +568,10 @@
 		return NULL;
 	}
 
-	if (PyAST_Check(cmd)) {
+	is_ast = PyAST_Check(cmd);
+	if (is_ast == -1)
+		return NULL;
+	if (is_ast) {
 		PyObject *result;
 		if (supplied_flags & PyCF_ONLY_AST) {
 			Py_INCREF(cmd);