Get the line number from PyCode_Addr2Line instead of believing
tb_lineno.  Store it in tb_lineno for the user.
diff --git a/Python/traceback.c b/Python/traceback.c
index b06a742..3f80ef5 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -243,11 +243,14 @@
 		tb1 = tb1->tb_next;
 	}
 	while (tb != NULL && !intrcheck()) {
-		if (depth <= limit)
+		if (depth <= limit) {
+			tb->tb_lineno = PyCode_Addr2Line(tb->tb_frame->f_code,
+							 tb->tb_lasti);
 			tb_displayline(f,
 			    getstringvalue(tb->tb_frame->f_code->co_filename),
 			    tb->tb_lineno,
 			    getstringvalue(tb->tb_frame->f_code->co_name));
+		}
 		depth--;
 		tb = tb->tb_next;
 	}