diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index be2a0a2..7117ef3 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -484,6 +484,34 @@
 Traceback (most recent call last):
 SyntaxError: can't assign to literal
 
+Corner-cases that used to fail to raise the correct error:
+
+    >>> def f(*, x=lambda __debug__:0): pass
+    Traceback (most recent call last):
+    SyntaxError: assignment to keyword
+
+    >>> def f(*args:(lambda __debug__:0)): pass
+    Traceback (most recent call last):
+    SyntaxError: assignment to keyword
+
+    >>> def f(**kwargs:(lambda __debug__:0)): pass
+    Traceback (most recent call last):
+    SyntaxError: assignment to keyword
+
+    >>> with (lambda *:0): pass
+    Traceback (most recent call last):
+    SyntaxError: named arguments must follow bare *
+
+Corner-cases that used to crash:
+
+    >>> def f(**__debug__): pass
+    Traceback (most recent call last):
+    SyntaxError: assignment to keyword
+
+    >>> def f(*xx, __debug__): pass
+    Traceback (most recent call last):
+    SyntaxError: assignment to keyword
+
 """
 
 import re
diff --git a/Python/ast.c b/Python/ast.c
index 6ea830b..9f6b7ea 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -689,7 +689,7 @@
                 if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) {
                     expression = ast_for_expr(c, CHILD(n, i + 2));
                     if (!expression)
-		      goto error;
+                        goto error;
                     asdl_seq_SET(kwdefaults, j, expression);
                     i += 2; /* '=' and test */
                 }
@@ -892,14 +892,14 @@
                 ch = CHILD(n, i+1);  /* tfpdef */
                 assert(TYPE(ch) == tfpdef || TYPE(ch) == vfpdef);
                 kwarg = NEW_IDENTIFIER(CHILD(ch, 0));
+                if (!kwarg)
+                    return NULL;
                 if (NCH(ch) > 1) {
                     /* there is an annotation on the kwarg */
                     kwargannotation = ast_for_expr(c, CHILD(ch, 2));
                     if (!kwargannotation)
                         return NULL;
                 }
-                if (!kwarg)
-                    return NULL;
                 if (forbidden_name(kwarg, CHILD(ch, 0), 0))
                     return NULL;
                 i += 3;
