handle dict subclasses gracefully in PyArg_ValidateKeywordArguments
diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py
index 818c99e..1507e42 100644
--- a/Lib/test/test_dict.py
+++ b/Lib/test/test_dict.py
@@ -8,10 +8,13 @@
 class DictTest(unittest.TestCase):
 
     def test_invalid_keyword_arguments(self):
-        with self.assertRaises(TypeError):
-            dict(**{1 : 2})
-        with self.assertRaises(TypeError):
-            {}.update(**{1 : 2})
+        class Custom(dict):
+            pass
+        for invalid in {1 : 2}, Custom({1 : 2}):
+            with self.assertRaises(TypeError):
+                dict(**invalid)
+            with self.assertRaises(TypeError):
+                {}.update(**invalid)
 
     def test_constructor(self):
         # calling built-in types without argument must return empty