Index: base.py
===================================================================
--- base.py	(revision 6966)
+++ base.py	(working copy)
@@ -24,7 +24,8 @@
     def __new__(cls, name, bases, attrs):
         # If this isn't a subclass of Model, don't do anything special.
         try:
-            if not filter(lambda b: issubclass(b, Model), bases):
+            parents = filter(lambda b: issubclass(b, Model), bases)
+            if not parents:
                 return super(ModelBase, cls).__new__(cls, name, bases, attrs)
         except NameError:
             # 'Model' isn't defined yet, meaning we're looking at Django's own
@@ -39,9 +40,8 @@
             types.ClassType('MultipleObjectsReturned', (MultipleObjectsReturned, ), {}))
 
         # Build complete list of parents
-        for base in bases:
-            # TODO: Checking for the presence of '_meta' is hackish.
-            if '_meta' in dir(base):
+        for base in parents:
+            if base is not Model:
                 new_class._meta.parents.append(base)
                 new_class._meta.parents.extend(base._meta.parents)
 
