Add a separate NEWS entry for a change to PyObject_CallMethod in the PEP 380 patch, and make the private CallMethod variants consistent with the public one
diff --git a/Misc/NEWS b/Misc/NEWS
index d3930ed..6531ddd 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2449,6 +2449,9 @@
 C-API
 -----
 
+- PyObject_CallMethod now passes along any underlying AttributeError from
+  PyObject_GetAttr, instead of replacing it with something less informative
+
 - Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and
   PyEval_ReleaseLock().  The thread-state aware APIs should be used instead.
 
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 4d73a3b..be568c6 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2288,7 +2288,6 @@
 
     func = _PyObject_GetAttrId(o, name);
     if (func == NULL) {
-        PyErr_SetString(PyExc_AttributeError, name->string);
         return 0;
     }
 
@@ -2330,7 +2329,6 @@
 
     func = _PyObject_GetAttrId(o, name);
     if (func == NULL) {
-        PyErr_SetString(PyExc_AttributeError, name->string);
         return NULL;
     }
     va_start(va, format);