diff -Naur a/bottle.py b/bottle.py
--- a/bottle.py	2023-02-25 16:33:57.484154733 +0800
+++ b/bottle.py	2023-02-25 16:24:53.631418542 +0800
@@ -64,6 +64,7 @@
 py3k = py >= (3, 0, 0)
 py25 = py <  (2, 6, 0)
 py31 = (3, 1, 0) <= py < (3, 2, 0)
+py310 = py >= (3, 10)
 
 # Workaround for the missing "as" keyword in py3k.
 def _e(): return sys.exc_info()[1]
@@ -84,7 +85,10 @@
     from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote
     urlunquote = functools.partial(urlunquote, encoding='latin1')
     from http.cookies import SimpleCookie
-    from collections import MutableMapping as DictMixin
+    if py310:
+        from _collections_abc import MutableMapping as DictMixin
+    else:
+        from collections import MutableMapping as DictMixin
     import pickle
     from io import BytesIO
     from configparser import ConfigParser