*** ../bash-20080724/subst.c 2008-08-01 22:20:31.000000000 -0400 --- subst.c 2008-08-17 20:15:52.000000000 -0400 *************** *** 135,139 **** extern int last_command_exit_value, last_command_exit_signal; extern int subshell_environment; ! extern int subshell_level; extern int eof_encountered; extern int return_catch_flag, return_catch_value; --- 135,139 ---- extern int last_command_exit_value, last_command_exit_signal; extern int subshell_environment; ! extern int subshell_level, parse_and_execute_level; extern int eof_encountered; extern int return_catch_flag, return_catch_value; *************** *** 8092,8096 **** assigning_in_environment = 0; ! top_level_cleanup (); /* from sig.c */ jump_to_top_level (v); } --- 8092,8098 ---- assigning_in_environment = 0; ! if (parse_and_execute_level == 0) ! top_level_cleanup (); /* from sig.c */ ! jump_to_top_level (v); }