diff --git a/Documentation/conf.py b/Documentation/conf.py
index 2f1e63fa17136d340af2e2f99dc03eef986bfd81..b3cede0a6e3995e95ea8233da951bc8f4ba7fc67 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -149,3 +149,21 @@ except ImportError as e:
 def setup(app):
     app.add_config_value("has_hawkmoth", has_hawkmoth, "")
     app.add_directive("color-example", ColorExample)
+    fix_issue_8945()
+
+
+def fix_issue_8945():
+    c_domain = __import__("sphinx.domains.c").domains.c
+
+    for kw in ["char", "float", "int", "long", "short", "void", "_Bool", "bool", "_Complex", "complex"]:
+        c_domain._keywords.remove(kw)
+
+    def parse_xref_object(self):
+        name = self._parse_nested_name()
+        self.skip_ws()
+        self.skip_string('()')
+        # Removing this line as a hacky workaround:
+        # self.assert_end()
+        return name
+
+    c_domain.DefinitionParser.parse_xref_object = parse_xref_object