diff -up bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling bash-4.0-rc1/execute_cmd.c --- bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling 2009-02-11 12:56:13.000000000 +0100 +++ bash-4.0-rc1/execute_cmd.c 2009-02-11 12:57:20.000000000 +0100 @@ -756,7 +756,7 @@ execute_command_internal (command, async the presence of a pipeline, and (until Posix changes things), a pipeline failure should not cause the parent shell to exit on an unsuccessful return status, even in the presence of errexit.. */ - if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS) + if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) { last_command_exit_value = exec_result; run_error_trap (); @@ -764,7 +764,7 @@ execute_command_internal (command, async if (ignore_return == 0 && invert == 0 && ((posixly_correct && interactive == 0 && special_builtin_failed) || - (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS))) + (exit_immediately_on_error && exec_result != EXECUTION_SUCCESS))) { last_command_exit_value = exec_result; run_pending_traps ();