diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py
index 516869f1ef..472f69dcf0 100644
--- a/django/contrib/admin/widgets.py
+++ b/django/contrib/admin/widgets.py
@@ -96,7 +96,7 @@ class AdminFileWidget(forms.FileInput):
output = []
if value and hasattr(value, "url"):
output.append('%s %s
%s ' % \
- (_('Currently:'), value.url, value, _('Change:')))
+ (_('Currently:'), escape(value.url), escape(value), _('Change:')))
output.append(super(AdminFileWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
diff --git a/tests/regressiontests/admin_widgets/tests.py b/tests/regressiontests/admin_widgets/tests.py
index e43ab83e9d..cf3f965c14 100644
--- a/tests/regressiontests/admin_widgets/tests.py
+++ b/tests/regressiontests/admin_widgets/tests.py
@@ -239,6 +239,22 @@ class AdminFileWidgetTest(DjangoTestCase):
'',
)
+ def test_render_escapes_html(self):
+ class StrangeFieldFile(object):
+ url = "something?chapter=1§=2©=3&lang=en"
+
+ def __unicode__(self):
+ return u'''something