diff --git a/django/utils/formats.py b/django/utils/formats.py
index 401f187163..1c59fdd05e 100644
--- a/django/utils/formats.py
+++ b/django/utils/formats.py
@@ -214,6 +214,8 @@ def localize_input(value, default=None):
     """
     if isinstance(value, six.string_types):  # Handle strings first for performance reasons.
         return value
+    elif isinstance(value, bool):  # Don't treat booleans as numbers.
+        return six.text_type(value)
     elif isinstance(value, (decimal.Decimal, float) + six.integer_types):
         return number_format(value)
     elif isinstance(value, datetime.datetime):
diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py
index 9bbbf10a09..1e07378ec2 100644
--- a/tests/i18n/tests.py
+++ b/tests/i18n/tests.py
@@ -1117,6 +1117,10 @@ class FormattingTests(SimpleTestCase):
                     form6.as_ul()
                 )
 
+    def test_localized_input_func(self):
+        with self.settings(USE_THOUSAND_SEPARATOR=True):
+            self.assertEqual(localize_input(True), 'True')
+
     def test_sanitize_separators(self):
         """
         Tests django.utils.formats.sanitize_separators.