diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index add7519..1bfc7c1 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -565,19 +565,15 @@
         return status;
     }
 
+    if (!_PyLong_Init()) {
+        return _PyStatus_ERR("can't init longs");
+    }
+
     status = _PyUnicode_Init();
     if (_PyStatus_EXCEPTION(status)) {
         return status;
     }
 
-    if (_PyStructSequence_Init() < 0) {
-        return _PyStatus_ERR("can't initialize structseq");
-    }
-
-    if (!_PyLong_Init()) {
-        return _PyStatus_ERR("can't init longs");
-    }
-
     status = _PyExc_Init();
     if (_PyStatus_EXCEPTION(status)) {
         return status;
@@ -587,8 +583,8 @@
         return _PyStatus_ERR("can't init float");
     }
 
-    if (!_PyContext_Init()) {
-        return _PyStatus_ERR("can't init context");
+    if (_PyStructSequence_Init() < 0) {
+        return _PyStatus_ERR("can't initialize structseq");
     }
 
     status = _PyErr_Init();
@@ -596,6 +592,10 @@
         return status;
     }
 
+    if (!_PyContext_Init()) {
+        return _PyStatus_ERR("can't init context");
+    }
+
     return _PyStatus_OK();
 }
 
@@ -1447,16 +1447,7 @@
     }
     config = &interp->config;
 
-    status = _PyExc_Init();
-    if (_PyStatus_EXCEPTION(status)) {
-        return status;
-    }
-
-    status = _PyErr_Init();
-    if (_PyStatus_EXCEPTION(status)) {
-        return status;
-    }
-
+    status = pycore_init_types();
 
     /* XXX The following is lax in error checking */
     PyObject *modules = PyDict_New();
