- Finally fixed the bug in compile() and exec where a string ending
  with an indented code block but no newline would raise SyntaxError.
  This would have been a four-line change in parsetok.c...  Except
  codeop.py depends on this behavior, so a compilation flag had to be
  invented that causes the tokenizer to revert to the old behavior;
  this required extra changes to 2 .h files, 2 .c files, and 2 .py
  files.  (Fixes SF bug #501622.)
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 338e38d..62aa512 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -380,7 +380,9 @@
 		return NULL;
 	}
 
-	if (supplied_flags & ~(PyCF_MASK | PyCF_MASK_OBSOLETE)) {
+	if (supplied_flags &
+	    ~(PyCF_MASK | PyCF_MASK_OBSOLETE | PyCF_DONT_IMPLY_DEDENT))
+	{
 		PyErr_SetString(PyExc_ValueError,
 				"compile(): unrecognised flags");
 		return NULL;
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index fa72fe8..1faab50 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -548,13 +548,9 @@
 }
 
 /* compute parser flags based on compiler flags */
-#if 0 /* future keyword */
 #define PARSER_FLAGS(flags) \
-	(((flags) && (flags)->cf_flags & CO_GENERATOR_ALLOWED) ? \
-		PyPARSE_YIELD_IS_KEYWORD : 0)
-#else
-#define PARSER_FLAGS(flags) 0
-#endif
+	(((flags) && (flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
+		PyPARSE_DONT_IMPLY_DEDENT : 0)
 
 int
 PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)