diff --git a/django/forms/fields.py b/django/forms/fields.py
index c61fca1..03ccd25 100644
a
|
b
|
class BooleanField(Field):
|
601 | 601 | # will submit for False. Also check for '0', since this is what |
602 | 602 | # RadioSelect will provide. Because bool("True") == bool('1') == True, |
603 | 603 | # we don't need to handle that explicitly. |
604 | | if value in ('False', '0'): |
| 604 | if isinstance(value, basestring) and value.lower() in ('false', '0'): |
605 | 605 | value = False |
606 | 606 | else: |
607 | 607 | value = bool(value) |
diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py
index f76e732..100e63d 100644
a
|
b
|
class FieldsTests(TestCase):
|
663 | 663 | self.assertEqual(False, f.clean('0')) |
664 | 664 | self.assertEqual(True, f.clean('Django rocks')) |
665 | 665 | self.assertEqual(False, f.clean('False')) |
| 666 | self.assertEqual(False, f.clean('false')) |
| 667 | self.assertEqual(False, f.clean('FaLsE')) |
666 | 668 | |
667 | 669 | # ChoiceField ################################################################# |
668 | 670 | |