Index: django/forms/models.py
===================================================================
--- django/forms/models.py	(revision 8235)
+++ django/forms/models.py	(working copy)
@@ -240,8 +240,16 @@
             fields.update(declared_fields)
         else:
             fields = declared_fields
+        # Sort by order specified in fields
+        sorted_field_list = []
+        for f in opts.fields:
+            if f in fields:
+                sorted_field_list.append((f,fields.pop(f)))
+        sorted_fields = SortedDict(sorted_field_list)
+        # Don't forget to add fields not explicitly mentioned in fields
+        sorted_fields.update(fields)
         new_class.declared_fields = declared_fields
-        new_class.base_fields = fields
+        new_class.base_fields = sorted_fields
         return new_class
 
 class BaseModelForm(BaseForm):
