*Don't* kill all local variables on function exit.  This will be done
by the frameobject dealloc when it is time for the locals to go.  When
there's still a traceback object referencing this stack frame, we
don't want the local variables to disappear yet.

(Hmm...  Shouldn't they be copied to the f_locals dictionary?)
diff --git a/Python/ceval.c b/Python/ceval.c
index 65aad61..37a4168 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1709,18 +1709,6 @@
 	--recursion_depth;
 
   fail: /* Jump here from prelude on failure */
-
-	/* Kill all local variables */
-
-	{
-		int i;
-		for (i = co->co_nlocals; --i >= 0; ++fastlocals) {
-			if (*fastlocals != NULL) {
-				DECREF(*fastlocals);
-				*fastlocals = NULL;
-			}
-		}
-	}
 	
 	/* Restore previous frame and release the current one */