diff -up make-3.82/job.c\~ make-3.82/job.c --- make-3.82/job.c~ 2010-08-12 14:57:15.000000000 +0200 +++ make-3.82/job.c 2010-08-12 14:58:23.000000000 +0200 @@ -2876,7 +2876,7 @@ construct_command_argv_internal (char *l } new_line = alloca (shell_len + 1 + sflags_len + 1 - + (line_len*2) + 1); + + (line_len*4) + 1); ap = new_line; memcpy (ap, shell, shell_len); ap += shell_len; @@ -2904,13 +2904,14 @@ construct_command_argv_internal (char *l #endif if (PRESERVE_BSNL) { - *(ap++) = '\\'; + *(ap++) = '\''; /* Only non-batch execution needs another backslash, because it will be passed through a recursive invocation of this function. */ if (!batch_mode_shell) *(ap++) = '\\'; *(ap++) = '\n'; + *(ap++) = '\''; } ++p; continue; Diff finished. Thu Aug 12 14:58:34 2010