diff --git a/django/utils/html.py b/django/utils/html.py
index a9ebd17..4728603 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -80,8 +80,8 @@ def format_html(format_string, *args, **kwargs):
and calls 'mark_safe' on the result. This function should be used instead
of str.format or % interpolation to build up small HTML fragments.
"""
- args_safe = map(conditional_escape, args)
- kwargs_safe = dict([(k, conditional_escape(v)) for (k, v) in
+ args_safe = map(lambda v: six.text_type(conditional_escape(v)), args)
+ kwargs_safe = dict([(k, six.text_type(conditional_escape(v))) for (k, v) in
six.iteritems(kwargs)])
return mark_safe(format_string.format(*args_safe, **kwargs_safe))