diff --git a/Lib/UserDict.py b/Lib/UserDict.py
index df5f7fb..0d9591a 100644
--- a/Lib/UserDict.py
+++ b/Lib/UserDict.py
@@ -1,6 +1,6 @@
 """A more or less complete user-defined wrapper around dictionary objects."""
 
-class UserDict(object):
+class UserDict:
     def __init__(self, dict=None, **kwargs):
         self.data = {}
         if dict is not None:
diff --git a/Lib/abc.py b/Lib/abc.py
index 8aeb2af..95126d8 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -96,7 +96,7 @@
 
     def register(cls, subclass):
         """Register a virtual subclass of an ABC."""
-        if not isinstance(subclass, type):
+        if not isinstance(cls, type):
             raise TypeError("Can only register classes")
         if issubclass(subclass, cls):
             return  # Already a subclass
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index fa20173..3e0955f 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -149,11 +149,6 @@
         self.assertRaises(RuntimeError, C.register, A)  # cycles not allowed
         C.register(B)  # ok
 
-    def test_register_non_class(self):
-        class A(object):
-            __metaclass__ = abc.ABCMeta
-        self.assertRaises(TypeError, A.register, 4)
-
     def test_registration_transitiveness(self):
         class A:
             __metaclass__ = abc.ABCMeta
diff --git a/Misc/NEWS b/Misc/NEWS
index 6c15fe6..d518010 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -58,8 +58,6 @@
   file position to the given argument, which goes against the tradition of
   ftruncate() and other truncation APIs.  Patch by Pascal Chambon.
 
-- Issue #7792: Registering non-classes to ABCs raised an obscure error.
-
 - Issue #7773: Fix an UnboundLocalError in platform.linux_distribution() when
   the release file is empty.
 
