https://lists.gnu.org/archive/html/bug-bash/2014-08/msg00048.html

*** ../bash-4.3-patched/execute_cmd.c	2014-07-30 10:26:52.000000000 -0400
--- execute_cmd.c	2014-08-11 16:55:57.000000000 -0400
***************
*** 2406,2410 ****
      {
  #if defined (JOB_CONTROL)
!       append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid);
  #endif
        lstdin = wait_for (lastpid);
--- 2433,2438 ----
      {
  #if defined (JOB_CONTROL)
!       if (INVALID_JOB (lastpipe_jid) == 0)
! 	append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid);
  #endif
        lstdin = wait_for (lastpid);
