From 76c81eecfa0b2a8a8a62a593ac2bd8c3e6c79acd Mon Sep 17 00:00:00 2001
From: Jeremy Hylton <jeremy@alum.mit.edu>
Date: Thu, 11 Jul 2002 16:56:38 +0000
Subject: Don't stomp on an exception set by PyCell_Get()

---
 Python/ceval.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Python/ceval.c b/Python/ceval.c
index 7f7d37e..61db642 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1734,6 +1734,10 @@ eval_frame(PyFrameObject *f)
 			x = freevars[oparg];
 			w = PyCell_Get(x);
 			if (w == NULL) {
+				err = -1;
+				/* Don't stomp existing exception */
+				if (PyErr_Occurred())
+					break;
 				if (oparg < f->f_ncells) {
 					v = PyTuple_GetItem(co->co_cellvars,
 							       oparg);
@@ -1750,7 +1754,6 @@ eval_frame(PyFrameObject *f)
 					       UNBOUNDFREE_ERROR_MSG,
 					       v);
 				}
-				err = -1;
 				break;
 			}
 			PUSH(w);
-- 
cgit v0.12

