Merge
diff --git a/Misc/NEWS b/Misc/NEWS
index 993bc11..d72a9d5 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@
 Core and Builtins
 -----------------
 
+- Issue #15926: Fix crash after multiple reinitializations of the interpreter.
+
 - Issue #15895: Fix FILE pointer leak in one error branch of
   PyRun_SimpleFileExFlags() when filename points to a pyc/pyo file, closeit
   is false an and set_main_loader() fails.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 1f2b0cc..54f6cd2 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -11852,7 +11852,6 @@
 
         /* initialize TerminalSize_info */
         PyStructSequence_InitType(&TerminalSizeType, &TerminalSize_desc);
-        Py_INCREF(&TerminalSizeType);
     }
 #if defined(HAVE_WAITID) && !defined(__APPLE__)
     Py_INCREF((PyObject*) &WaitidResultType);
@@ -11915,6 +11914,7 @@
 
 #endif /* __APPLE__ */
 
+    Py_INCREF(&TerminalSizeType);
     PyModule_AddObject(m, "terminal_size", (PyObject*) &TerminalSizeType);
 
     billion = PyLong_FromLong(1000000000);