only accept AttributeError as indicating no __prepare__ attribute on a metaclass, allowing lookup errors to propogate
diff --git a/Lib/test/test_metaclass.py b/Lib/test/test_metaclass.py
index 000bcf5..219ab99 100644
--- a/Lib/test/test_metaclass.py
+++ b/Lib/test/test_metaclass.py
@@ -230,6 +230,20 @@
     42
     >>>
 
+Test failures in looking up the __prepare__ method work.
+    >>> class ObscureException(Exception):
+    ...     pass
+    >>> class FailDescr:
+    ...     def __get__(self, instance, owner):
+    ...        raise ObscureException
+    >>> class Meta(type):
+    ...     __prepare__ = FailDescr()
+    >>> class X(metaclass=Meta):
+    ...     pass
+    Traceback (most recent call last):
+    [...]
+    test.test_metaclass.ObscureException
+
 """
 
 __test__ = {'doctests' : doctests}