Index: django/newforms/models.py
===================================================================
--- django/newforms/models.py	(revision 133)
+++ django/newforms/models.py	(working copy)
@@ -54,6 +54,21 @@
         form.save_m2m = save_m2m
     return instance
 
+def make_model_init(form, fields):
+    """Returns the __init__() method for a Form."""
+    def __init__(self, instance=None, **kwargs):
+        if instance:
+            opts = instance.__class__._meta
+            initial = kwargs.setdefault('initial', {})
+            for f in opts.fields:
+                if not f.editable or f.name in initial:
+                    continue
+                if fields and f.name not in fields:
+                    continue
+                initial[f.name] = f.value_from_object(instance)
+        form.__init__(self, **kwargs)
+    return __init__
+
 def make_model_save(model, fields, fail_message):
     "Returns the save() method for a Form."
     def save(self, commit=True):
@@ -88,7 +103,8 @@
             field_list.append((f.name, formfield))
     base_fields = SortedDictFromList(field_list)
     return type(opts.object_name + 'Form', (form,), 
-        {'base_fields': base_fields, '_model': model, 'save': make_model_save(model, fields, 'created')})
+        {'base_fields': base_fields, '_model': model, '__init__': make_model_init(form, fields),
+         'save': make_model_save(model, fields, 'created')})
 
 def form_for_instance(instance, form=BaseForm, fields=None, formfield_callback=lambda f, **kwargs: f.formfield(**kwargs)):
     """
