diff --git a/Python/compile.c b/Python/compile.c
index 328c57b..7bbcd62 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -629,7 +629,10 @@
 	int c_maxstacklevel;	/* Maximum stack level */
 	int c_firstlineno;
 	PyObject *c_lnotab;	/* Table mapping address to line number */
-	int c_last_addr, c_last_line, c_lnotab_next;
+	int c_last_addr;	/* last op addr seen and recorded in lnotab */
+	int c_last_line;	/* last line seen and recorded in lnotab */
+	int c_lnotab_next;	/* current length of lnotab */
+	int c_lnotab_last;	/* start of last lnotab record added */
 	char *c_private;	/* for private name mangling */
 	int c_tmpname;		/* temporary local name counter */
 	int c_nested;		/* Is block nested funcdef or lamdef? */
@@ -848,6 +851,7 @@
 	c->c_last_addr = 0;
 	c->c_last_line = 0;
 	c->c_lnotab_next = 0;
+	c->c_lnotab_last = 0;
 	c->c_tmpname = 0;
 	c->c_nested = 0;
 	c->c_closure = 0;
@@ -964,6 +968,7 @@
 	else {
 		int incr_addr = c->c_nexti - c->c_last_addr;
 		int incr_line = lineno - c->c_last_line;
+		c->c_lnotab_last = c->c_lnotab_next;
 		while (incr_addr > 255) {
 			com_add_lnotab(c, 255, 0);
 			incr_addr -= 255;
@@ -981,6 +986,27 @@
 }
 
 static void
+com_strip_lnotab(struct compiling *c)
+{
+	/* strip the last lnotab entry if no opcode were emitted.
+	 * This prevents a line number to be generated on a final
+	 * pass, like in the following example:
+	 *
+	 *    if a:
+	 *        print 5
+	 *    else:
+	 *        pass
+	 *
+	 * Without the fix, a line trace event would be generated
+	 * on the pass even if a is true (because of the implicit
+	 * return).
+	 */
+	if (c->c_nexti == c->c_last_addr && c->c_lnotab_last > 0) {
+		c->c_lnotab_next = c->c_lnotab_last;
+	}
+}
+
+static void
 com_addoparg(struct compiling *c, int op, int arg)
 {
 	int extended_arg = arg >> 16;
@@ -4167,6 +4193,7 @@
 	c->c_infunction = 1;
 	com_node(c, CHILD(n, 4));
 	c->c_infunction = 0;
+	com_strip_lnotab(c);
 	com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None));
 	com_push(c, 1);
 	com_addbyte(c, RETURN_VALUE);
@@ -4218,6 +4245,7 @@
 	else
 		(void) com_addconst(c, Py_None);
 	com_node(c, ch);
+	com_strip_lnotab(c);
 	com_addbyte(c, LOAD_LOCALS);
 	com_push(c, 1);
 	com_addbyte(c, RETURN_VALUE);
@@ -4237,6 +4265,7 @@
 		n = CHILD(n, 0);
 		if (TYPE(n) != NEWLINE)
 			com_node(c, n);
+		com_strip_lnotab(c);
 		com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None));
 		com_push(c, 1);
 		com_addbyte(c, RETURN_VALUE);
@@ -4246,6 +4275,7 @@
 	
 	case file_input: /* A whole file, or built-in function exec() */
 		com_file_input(c, n);
+		com_strip_lnotab(c);
 		com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None));
 		com_push(c, 1);
 		com_addbyte(c, RETURN_VALUE);
