One return path in bppy_get_commands was missing a do_cleanups call.
	* python/py-breakpoint.c (bppy_get_commands): Call do_cleanups
	along all return paths.
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
+       * python/py-breakpoint.c (bppy_get_commands): Call do_cleanups
+       along all return paths.
+
 2013-05-30  Tom Tromey  <tromey@redhat.com>
 
        * cli/cli-logging.c (set_logging_redirect): Unconditionally
 
       print_command_lines (current_uiout, breakpoint_commands (bp), 0);
     }
   ui_out_redirect (current_uiout, NULL);
-  GDB_PY_HANDLE_EXCEPTION (except);
+  if (except.reason < 0)
+    {
+      do_cleanups (chain);
+      GDB_PY_HANDLE_EXCEPTION (except);
+    }
 
   cmdstr = ui_file_xstrdup (string_file, &length);
   make_cleanup (xfree, cmdstr);