Index: django/forms/widgets.py
===================================================================
--- django/forms/widgets.py	(revision 10239)
+++ django/forms/widgets.py	(working copy)
@@ -422,7 +422,7 @@
 
     def value_from_datadict(self, data, files, name):
         value = data.get(name, None)
-        return {u'2': True, u'3': False, True: True, False: False}.get(value, None)
+        return {u'2': True, u'3': False, 'True': True, 'False': False}.get(value, None)
 
     def _has_changed(self, initial, data):
         # Sometimes data or initial could be None or u'' which should be the
Index: tests/regressiontests/formwizard/__init__.py
===================================================================
Index: tests/regressiontests/formwizard/forms.py
===================================================================
--- tests/regressiontests/formwizard/forms.py	(revision 0)
+++ tests/regressiontests/formwizard/forms.py	(revision 0)
@@ -0,0 +1,18 @@
+from django import forms
+from django.contrib.formtools.wizard import FormWizard
+from django.http import HttpResponse
+
+class Page1(forms.Form):
+    name = forms.CharField(max_length=100)
+    thirsty = forms.NullBooleanField()
+
+class Page2(forms.Form):
+    address1 = forms.CharField(max_length=100)
+    address2 = forms.CharField(max_length=100)
+    
+class Page3(forms.Form):
+    random_crap = forms.CharField(max_length=100)
+    
+class ContactWizard(FormWizard):
+    def done(self, request, form_list):
+        return HttpResponse("")
Index: tests/regressiontests/formwizard/models.py
===================================================================
Index: tests/regressiontests/formwizard/templates/forms/wizard.html
===================================================================
--- tests/regressiontests/formwizard/templates/forms/wizard.html	(revision 0)
+++ tests/regressiontests/formwizard/templates/forms/wizard.html	(revision 0)
@@ -0,0 +1,13 @@
+<html>
+  <body>
+    <p>Step {{ step }} of {{ step_count }}</p>
+    <form action="." method="post">
+    <table>
+    {{ form }}
+    </table>
+    <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
+    {{ previous_fields|safe }}
+    <input type="submit">
+    </form>
+  </body>
+</html>
\ No newline at end of file
Index: tests/regressiontests/formwizard/tests.py
===================================================================
--- tests/regressiontests/formwizard/tests.py	(revision 0)
+++ tests/regressiontests/formwizard/tests.py	(revision 0)
@@ -0,0 +1,50 @@
+import re
+from django import forms
+from django.test import TestCase
+
+class FormWizardWithNullBooleanField(TestCase):
+    urls = 'regressiontests.formwizard.urls'
+
+    input_re = re.compile('<input (?:type="[^"]+" )?name="([^"]+)" value="([^"]+)"')
+
+    def grabInputFields(self, response_content):
+        fields = {}
+        start_pos = 0
+        m = 'dummy'
+        while m:
+            response_content = response_content[start_pos:]
+            m = self.input_re.search(response_content)
+            if m:
+                fields[m.group(1)] = m.group(2)
+                start_pos = m.end()
+        return fields
+
+    def testWizard(self):
+        url = '/wiz/'
+        response = self.client.get(url)
+        self.assertContains(response, 'Step 1 of 3')
+        
+        data = self.grabInputFields(response.content)
+        data.update({
+            '0-name': 'Pony',
+            '0-thirsty': '2',
+        })
+        response = self.client.post(url, data)
+        self.assertContains(response, 'Step 2 of 3')
+        
+        data = self.grabInputFields(response.content)
+        data.update({
+            '1-address1': '123 Main St',
+            '1-address2': 'Djangoland',
+        })
+
+        response = self.client.post(url, data)
+        self.assertContains(response, 'Step 3 of 3')
+
+        data = self.grabInputFields(response.content)        
+        data = {
+            '2-random_crap': 'blah blah',
+        }
+        response = self.client.post(url, data)
+        self.assertEqual(response.status_code, 200)
+        
\ No newline at end of file
Index: tests/regressiontests/formwizard/urls.py
===================================================================
--- tests/regressiontests/formwizard/urls.py	(revision 0)
+++ tests/regressiontests/formwizard/urls.py	(revision 0)
@@ -0,0 +1,6 @@
+from django.conf.urls.defaults import *
+from forms import ContactWizard, Page1, Page2, Page3
+
+urlpatterns = patterns('',
+    url(r'^wiz/$', ContactWizard([Page1, Page2, Page3])),
+    )
