Index: django/newforms/fields.py
===================================================================
--- django/newforms/fields.py	(Revision 6976)
+++ django/newforms/fields.py	(Arbeitskopie)
@@ -536,7 +536,9 @@
         # will submit for False. Because bool("True") == True, we don't need to
         # handle that explicitly.
         if value == 'False':
-            return False
+            value = False
+        if self.required and not value:
+            raise ValidationError(self.error_messages['required'])
         return bool(value)
 
 class NullBooleanField(BooleanField):
Index: tests/regressiontests/forms/tests.py
===================================================================
--- tests/regressiontests/forms/tests.py	(Revision 6049)
+++ tests/regressiontests/forms/tests.py	(Arbeitskopie)
@@ -1694,11 +1694,15 @@
 >>> f.clean(True)
 True
 >>> f.clean(False)
-False
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
 >>> f.clean(1)
 True
 >>> f.clean(0)
-False
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
 >>> f.clean('Django rocks')
 True
 
