diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py
index 8479d43..c6ffbea 100644
--- a/Lib/test/pickletester.py
+++ b/Lib/test/pickletester.py
@@ -724,6 +724,16 @@
 # XXX along with the references to it in test_pickle.py.
 class TempAbstractPickleTests(unittest.TestCase):
 
+    def test_simple_newobj(self):
+        x = object.__new__(SimpleNewObj)  # avoid __init__
+        x.abc = 666
+        for proto in protocols:
+            s = self.dumps(x, proto)
+            self.assertEqual(opcode_in_pickle(pickle.NEWOBJ, s), proto >= 2)
+            y = self.loads(s)   # will raise TypeError if __init__ called
+            self.assertEqual(y.abc, 666)
+            self.assertEqual(x.__dict__, y.__dict__)
+
     def test_newobj_list_slots(self):
         x = SlotList([1, 2, 3])
         x.foo = 42
@@ -771,6 +781,11 @@
 class SlotList(MyList):
     __slots__ = ["foo"]
 
+class SimpleNewObj(object):
+    def __init__(self, a, b, c):
+        # raise an error, to make sure this isn't called
+        raise TypeError("SimpleNewObj.__init__() didn't expect to get called")
+
 class AbstractPickleModuleTests(unittest.TestCase):
 
     def test_dump_closed_file(self):
