diff --git a/Python/import.c b/Python/import.c
index c31819d..1592045 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -116,7 +116,7 @@
 */
 #define MAGIC (3230 | ((long)'\r'<<16) | ((long)'\n'<<24))
 #define CACHEDIR "__pycache__"
-/* Current magic word and string tag as globals. */
+/* Current magic word as global. */
 static long pyc_magic = MAGIC;
 
 /* See _PyImport_FixupExtensionObject() below */
@@ -520,22 +520,12 @@
 }
 
 
+extern const char * _PySys_ImplCacheTag;
+
 const char *
 PyImport_GetMagicTag(void)
 {
-    PyObject *impl, *tag;
-    const char *raw_tag;
-
-    /* We could also pull it from imp or importlib. */
-    impl = PySys_GetObject("implementation");
-    if (impl == NULL)
-        return NULL;
-    tag = PyObject_GetAttrString(impl, "cache_tag");
-    if (tag == NULL)
-        return NULL;
-    raw_tag = PyUnicode_DATA(tag);
-    Py_DECREF(tag);
-    return raw_tag;
+    return _PySys_ImplCacheTag;
 }
 
 
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index ce5e825..20bfa55 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -1478,6 +1478,22 @@
     return version_info;
 }
 
+/* sys.implementation values */
+#define NAME "cpython"
+const char *_PySys_ImplName = NAME;
+#define QUOTE(arg) #arg
+#define STRIFY(name) QUOTE(name)
+#define MAJOR STRIFY(PY_MAJOR_VERSION)
+#define MINOR STRIFY(PY_MINOR_VERSION)
+#define TAG NAME "-" MAJOR MINOR;
+const char *_PySys_ImplCacheTag = TAG;
+#undef NAME
+#undef QUOTE
+#undef STRIFY
+#undef MAJOR
+#undef MINOR
+#undef TAG
+
 static PyObject *
 make_impl_info(PyObject *version_info)
 {
@@ -1490,13 +1506,7 @@
 
     /* populate the dict */
 
-#define NAME "cpython"
-#define QUOTE(arg) #arg
-#define STRIFY(name) QUOTE(name)
-#define MAJOR STRIFY(PY_MAJOR_VERSION)
-#define MINOR STRIFY(PY_MINOR_VERSION)
-#define TAG NAME "-" MAJOR MINOR
-    value = PyUnicode_FromString(NAME);
+    value = PyUnicode_FromString(_PySys_ImplName);
     if (value == NULL)
         goto error;
     res = PyDict_SetItemString(impl_info, "name", value);
@@ -1504,19 +1514,13 @@
     if (res < 0)
         goto error;
 
-    value = PyUnicode_FromString(TAG);
+    value = PyUnicode_FromString(_PySys_ImplCacheTag);
     if (value == NULL)
         goto error;
     res = PyDict_SetItemString(impl_info, "cache_tag", value);
     Py_DECREF(value);
     if (res < 0)
         goto error;
-#undef NAME
-#undef QUOTE
-#undef STRIFY
-#undef MAJOR
-#undef MINOR
-#undef TAG
 
     res = PyDict_SetItemString(impl_info, "version", version_info);
     if (res < 0)
