diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index 2c8c8e8..c147105 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -42,7 +42,7 @@
             def __hash__(self):
                 return -1729
         for arg in [None, 0, 1, -1, 10**20, -(10**20),
-                    3.14, 'a']:
+                    False, True, 3.14, 'a']:
             self.gen.seed(arg)
 
         for arg in [1+2j, tuple('abc'), MySeed()]:
diff --git a/Misc/NEWS.d/next/Library/2020-03-10-12-52-06.bpo-38075.qbESAF.rst b/Misc/NEWS.d/next/Library/2020-03-10-12-52-06.bpo-38075.qbESAF.rst
new file mode 100644
index 0000000..df52fcc
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-03-10-12-52-06.bpo-38075.qbESAF.rst
@@ -0,0 +1,2 @@
+Fix the :meth:`random.Random.seed` method when a :class:`bool` is passed as the
+seed.
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index f0fdb03..7a88718 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -264,7 +264,6 @@
     uint32_t *key = NULL;
     size_t bits, keyused;
     int res;
-    PyObject *args[1];
 
     if (arg == NULL || arg == Py_None) {
        if (random_seed_urandom(self) < 0) {
@@ -286,9 +285,7 @@
     } else if (PyLong_Check(arg)) {
         /* Calling int.__abs__() prevents calling arg.__abs__(), which might
            return an invalid value. See issue #31478. */
-        args[0] = arg;
-        n = PyObject_Vectorcall(_randomstate_global->Long___abs__, args, 0,
-                                         NULL);
+        n = PyObject_CallOneArg(_randomstate_global->Long___abs__, arg);
     }
     else {
         Py_hash_t hash = PyObject_Hash(arg);
