diff --git a/Python/compile.c b/Python/compile.c
index b95732b..73d9742 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -4778,6 +4778,16 @@
 }
 
 static int
+symtable_error(struct symtable *st, int lineno)
+{
+	if (lineno == 0)
+		lineno = st->st_cur->ste_lineno;
+	PyErr_SyntaxLocation(st->st_filename, lineno);
+	st->st_errors++;
+	return -1;
+}
+
+static int
 symtable_load_symbols(struct compiling *c)
 {
 	struct symtable *st = c->c_symtable;
@@ -4835,9 +4845,7 @@
 			if (flags & DEF_PARAM) {
 				PyErr_Format(PyExc_SyntaxError, LOCAL_GLOBAL,
 					     PyString_AS_STRING(name));
-				PyErr_SyntaxLocation(st->st_filename, 
-						   ste->ste_lineno);
-				st->st_errors++;
+				symtable_error(st, 0);
 				goto fail;
 			}
 			if (PyDict_SetItem(c->c_globals, name, Py_None) < 0)
@@ -5190,9 +5198,7 @@
 	    if ((flag & DEF_PARAM) && (val & DEF_PARAM)) {
 		    PyErr_Format(PyExc_SyntaxError, DUPLICATE_ARGUMENT,
 				 PyString_AsString(name));
-		    PyErr_SyntaxLocation(st->st_filename,
-				       st->st_cur->ste_lineno);
-		    return -1;
+		    return symtable_error(st, 0);
 	    }
 	    val |= flag;
 	} else
@@ -5589,9 +5595,7 @@
 				PyErr_Format(PyExc_SyntaxError,
 				     "name '%.400s' is local and global",
 					     name);
-				PyErr_SyntaxLocation(st->st_filename,
-						   st->st_cur->ste_lineno);
-				st->st_errors++;
+				symtable_error(st, 0);
 				return;
 			}
 			else {
@@ -5651,9 +5655,7 @@
 			if (n->n_lineno >= st->st_future->ff_last_lineno) {
 				PyErr_SetString(PyExc_SyntaxError,
 						LATE_FUTURE);
- 				PyErr_SyntaxLocation(st->st_filename,
-						   n->n_lineno);
-				st->st_errors++;
+				symtable_error(st, n->n_lineno);
 				return;
 			}
 		}
@@ -5747,9 +5749,8 @@
 			if (strcmp(STR(tmp), "__debug__") == 0) {
 				PyErr_SetString(PyExc_SyntaxError, 
 						ASSIGN_DEBUG);
-				PyErr_SyntaxLocation(st->st_filename,
-						     n->n_lineno);
-				st->st_errors++;
+				symtable_error(st, n->n_lineno);
+				return;
 			}
 			symtable_add_def(st, STR(tmp), DEF_LOCAL | def_flag);
 		}
