Handle importing pkg.mod by executing
__import__('mod', {'__packaging__': 'pkg', level=1) w/o properly (and
thus not segfaulting).
diff --git a/Python/import.c b/Python/import.c
index be83ab4..5136d98 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -3016,20 +3016,33 @@
             Py_DECREF(partition);
 
             if (level == 0) {
-                final_mod = PyDict_GetItemWithError(interp->modules, front);
+                final_mod = PyDict_GetItem(interp->modules, front);
                 Py_DECREF(front);
-                Py_XINCREF(final_mod);
+                if (final_mod == NULL) {
+                    PyErr_Format(PyExc_KeyError,
+                                 "%R not in sys.modules as expected", front);
+                }
+                else {
+                    Py_INCREF(final_mod);
+                }
             }
             else {
                 Py_ssize_t cut_off = PyUnicode_GetLength(name) -
                                         PyUnicode_GetLength(front);
                 Py_ssize_t abs_name_len = PyUnicode_GetLength(abs_name);
-                PyObject *to_return = PyUnicode_Substring(name, 0,
+                PyObject *to_return = PyUnicode_Substring(abs_name, 0,
                                                         abs_name_len - cut_off);
 
                 final_mod = PyDict_GetItem(interp->modules, to_return);
-                Py_INCREF(final_mod);
                 Py_DECREF(to_return);
+                if (final_mod == NULL) {
+                    PyErr_Format(PyExc_KeyError,
+                                 "%R not in sys.modules as expected",
+                                 to_return);
+                }
+                else {
+                    Py_INCREF(final_mod);
+                }
             }
         }
         else {