Use Tim's suggestion to fix
[ 708901 ] Lineno calculation sometimes broken
A one line patch to compile.c and a rather-more-than-one-line patch
to test_dis. Hey ho.
Possibly a backport candidate -- tho' lnotab is less used in 2.2...
diff --git a/Python/compile.c b/Python/compile.c
index 57f0edb..a3f48fc 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -3366,7 +3366,7 @@
com_node(c, CHILD(n, 3));
com_addbyte(c, GET_ITER);
c->c_begin = c->c_nexti;
- com_set_lineno(c, n->n_lineno);
+ com_set_lineno(c, c->c_last_line);
com_addfwref(c, FOR_ITER, &anchor);
com_push(c, 1);
com_assign(c, CHILD(n, 1), OP_ASSIGN, NULL);