Index: parse.y =================================================================== --- parse.y.orig +++ parse.y @@ -3106,7 +3106,7 @@ parse_matched_pair (qc, open, close, len ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); xfree (nestret); - if ((rflags & P_DQUOTE) == 0) + if (extended_quote || (rflags & P_DQUOTE) == 0) { nestret = sh_single_quote (ttrans); free (ttrans); @@ -3517,7 +3517,7 @@ eof_error: ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); xfree (nestret); - if ((rflags & P_DQUOTE) == 0) + if (extended_quote || (rflags & P_DQUOTE) == 0) { nestret = sh_single_quote (ttrans); free (ttrans);