fix a silly problem of caching gone wrong #5401
diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index fc0108b..6212e78 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -237,7 +237,8 @@
     Optional `strict' argument when false adds a bunch of commonly found, but
     non-standard types.
     """
-    init()
+    if not inited:
+        init()
     return guess_type(url, strict)
 
 
@@ -254,7 +255,8 @@
     Optional `strict' argument when false adds a bunch of commonly found,
     but non-standard types.
     """
-    init()
+    if not inited:
+        init()
     return guess_all_extensions(type, strict)
 
 def guess_extension(type, strict=True):
@@ -269,7 +271,8 @@
     Optional `strict' argument when false adds a bunch of commonly found,
     but non-standard types.
     """
-    init()
+    if not inited:
+        init()
     return guess_extension(type, strict)
 
 def add_type(type, ext, strict=True):
@@ -284,7 +287,8 @@
     list of standard types, else to the list of non-standard
     types.
     """
-    init()
+    if not inited:
+        init()
     return add_type(type, ext, strict)
 
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 36567f7..49a3885 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -166,6 +166,9 @@
 Library
 -------
 
+- Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
+  import guess_extension`` was used.
+
 - Issue #1733986: Fixed mmap crash in accessing elements of second map object
   with same tagname but larger size than first map. (Windows)