Index: django/utils/functional.py
===================================================================
--- django/utils/functional.py	(révision 16025)
+++ django/utils/functional.py	(copie de travail)
@@ -67,14 +67,15 @@
             cls.__dispatch = {}
             for resultclass in resultclasses:
                 cls.__dispatch[resultclass] = {}
-                for (k, v) in resultclass.__dict__.items():
-                    # All __promise__ return the same wrapper method, but they
-                    # also do setup, inserting the method into the dispatch
-                    # dict.
-                    meth = cls.__promise__(resultclass, k, v)
-                    if hasattr(cls, k):
-                        continue
-                    setattr(cls, k, meth)
+                for type_ in reversed(resultclass.mro()):
+                    for (k, v) in type_.__dict__.items():
+                        # All __promise__ return the same wrapper method, but they
+                        # also do setup, inserting the method into the dispatch
+                        # dict.
+                        meth = cls.__promise__(resultclass, k, v)
+                        if hasattr(cls, k):
+                            continue
+                        setattr(cls, k, meth)
             cls._delegate_str = str in resultclasses
             cls._delegate_unicode = unicode in resultclasses
             assert not (cls._delegate_str and cls._delegate_unicode), "Cannot call lazy() with both str and unicode return types."
