Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 7829)
+++ django/db/models/base.py	(working copy)
@@ -32,6 +32,7 @@
     "Metaclass for all models"
     def __new__(cls, name, bases, attrs):
         # If this isn't a subclass of Model, don't do anything special.
+        super_new = super(ModelBase, cls).__new__
         try:
             parents = [b for b in bases if issubclass(b, Model)]
         except NameError:
@@ -39,11 +40,11 @@
             # Model class, defined below.
             parents = []
         if not parents:
-            return super(ModelBase, cls).__new__(cls, name, bases, attrs)
+            return super_new(cls, name, bases, attrs)
 
         # Create the class.
         module = attrs.pop('__module__')
-        new_class = type.__new__(cls, name, bases, {'__module__': module})
+        new_class = super_new(cls, name, bases, {'__module__': module})
         attr_meta = attrs.pop('Meta', None)
         abstract = getattr(attr_meta, 'abstract', False)
         if not attr_meta:
Index: django/newforms/forms.py
===================================================================
--- django/newforms/forms.py	(revision 7829)
+++ django/newforms/forms.py	(working copy)
@@ -56,7 +56,8 @@
     """
     def __new__(cls, name, bases, attrs):
         attrs['base_fields'] = get_declared_fields(bases, attrs)
-        return type.__new__(cls, name, bases, attrs)
+        return super(DeclarativeFieldsMetaclass,
+                     cls).__new__(cls, name, bases, attrs)
 
 class BaseForm(StrAndUnicode):
     # This is the main implementation of all the Form logic. Note that this
