Don't stomp on an exception set by PyCell_Get()
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 @@
 			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 @@
 					       UNBOUNDFREE_ERROR_MSG,
 					       v);
 				}
-				err = -1;
 				break;
 			}
 			PUSH(w);