Have Bdb frame_returning in the finally clause
diff --git a/Lib/bdb.py b/Lib/bdb.py
index 1a562f4..59440a9 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -83,9 +83,11 @@
 
     def dispatch_return(self, frame, arg):
         if self.stop_here(frame) or frame == self.returnframe:
-            self.frame_returning = frame
-            self.user_return(frame, arg)
-            self.frame_returning = None
+            try:
+                self.frame_returning = frame
+                self.user_return(frame, arg)
+            finally:
+                self.frame_returning = None
             if self.quitting: raise BdbQuit
         return self.trace_dispatch