handle errors from _PyObject_LookupSpecial when __get__ fails
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index f3c216a..c7989b1 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1722,7 +1722,11 @@
             def __get__(self, obj, owner):
                 record.append(1)
                 return self.impl.__get__(obj, owner)
-
+        class MyException(Exception):
+            pass
+        class ErrDescr(object):
+            def __get__(self, obj, owner):
+                raise MyException
 
         for name, runner, meth_impl, ok, env in specials:
             class X(Checker):
@@ -1741,6 +1745,18 @@
             runner(X())
             self.assertEqual(record, [1], name)
 
+            class X(Checker):
+                pass
+            for attr, obj in env.iteritems():
+                setattr(X, attr, obj)
+            setattr(X, name, ErrDescr())
+            try:
+                runner(X())
+            except MyException:
+                pass
+            else:
+                self.fail("{0!r} didn't raise".format(name))
+
     def test_specials(self):
         # Testing special operators...
         # Test operators like __hash__ for which a built-in default exists