Index: django/forms/models.py
===================================================================
--- django/forms/models.py	(revision 12453)
+++ django/forms/models.py	(working copy)
@@ -179,8 +179,8 @@
 
 class ModelFormMetaclass(type):
     def __new__(cls, name, bases, attrs):
-        formfield_callback = attrs.pop('formfield_callback',
-                lambda f: f.formfield())
+        if 'formfield_callback' in attrs:
+            attrs['formfield_callback'] = staticmethod(attrs['formfield_callback'])
         try:
             parents = [b for b in bases if issubclass(b, ModelForm)]
         except NameError:
@@ -198,7 +198,7 @@
         if opts.model:
             # If a model is defined, extract form fields from it.
             fields = fields_for_model(opts.model, opts.fields,
-                                      opts.exclude, formfield_callback)
+                                      opts.exclude, getattr(new_class, 'formfield_callback', lambda f: f.formfield()))
             # Override default model fields with any custom declared ones
             # (plus, include all the other declared fields).
             fields.update(declared_fields)
