This repository doesn't contain the Django source code. Based on my knowledge of Django's codebase and the issue description, I can provide the fix. The issue is in the `join` filter in `django/template/defaultfilters.py`. Looking at the Django source code and the issue: 1. The `join` filter always escapes the joining string using `conditional_escape(arg)` 2. But when `autoescape` is off, the joining string should not be escaped The current implementation looks something like: ```python @register.filter(is_safe=True, needs_autoescape=True) def join(value, arg, autoescape=True): """Join a list with a string, like Python's ``str.join(list)``.""" try: if autoescape: value = [conditional_escape(v) for v in value] data = conditional_escape(arg).join(value) except TypeError: # Fail silently if arg isn't iterable. return value return mark_safe(data) ``` The bug is that `conditional_escape(arg)` is called unconditionally regardless of the `autoescape` parameter. When `autoescape` is `off`, the joining string should not be escaped. Here's the fix: --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -586,7 +586,10 @@ def join(value, arg, autoescape=True): try: if autoescape: value = [conditional_escape(v) for v in value] - data = conditional_escape(arg).join(value) + data = conditional_escape(arg).join(value) + else: + data = arg.join(value) except TypeError: # Fail silently if arg isn't iterable. return value return mark_safe(data)