diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 323f017..4a27d4b 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -725,11 +725,11 @@
       typedef int (*setter)(PyObject *, PyObject *, void *);
 
       typedef struct PyGetSetDef {
-          char *name;    /* attribute name */
-          getter get;    /* C function to get the attribute */
-          setter set;    /* C function to set or delete the attribute */
-          char *doc;     /* optional doc string */
-          void *closure; /* optional additional data for getter and setter */
+          const char *name; /* attribute name */
+          getter get;       /* C function to get the attribute */
+          setter set;       /* C function to set or delete the attribute */
+          const char *doc;  /* optional doc string */
+          void *closure;    /* optional additional data for getter and setter */
       } PyGetSetDef;
 
 
diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst
index b8ce437..118f336 100644
--- a/Doc/extending/newtypes.rst
+++ b/Doc/extending/newtypes.rst
@@ -1138,11 +1138,11 @@
 be read-only or read-write.  The structures in the table are defined as::
 
    typedef struct PyMemberDef {
-       char *name;
-       int   type;
-       int   offset;
-       int   flags;
-       char *doc;
+       const char *name;
+       int         type;
+       int         offset;
+       int         flags;
+       const char *doc;
    } PyMemberDef;
 
 For each entry in the table, a :term:`descriptor` will be constructed and added to the
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index de0c364..0f6ebc4 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -99,6 +99,12 @@
   of libffi is now required when building ``_ctypes`` on such platforms.
   Contributed by Zachary Ware in :issue:`27979`.
 
+* The fields :c:member:`name` and :c:member:`doc` of structures
+  :c:type:`PyMemberDef`, :c:type:`PyGetSetDef`,
+  :c:type:`PyStructSequence_Field`, :c:type:`PyStructSequence_Desc`,
+  and :c:type:`wrapperbase` are now of type ``const char *`` rather of
+  ``char *``.  (Contributed by Serhiy Storchaka in :issue:`28761`.)
+
 
 Deprecated
 ==========
diff --git a/Include/descrobject.h b/Include/descrobject.h
index 8f3e84c..013d645 100644
--- a/Include/descrobject.h
+++ b/Include/descrobject.h
@@ -9,10 +9,10 @@
 typedef int (*setter)(PyObject *, PyObject *, void *);
 
 typedef struct PyGetSetDef {
-    char *name;
+    const char *name;
     getter get;
     setter set;
-    char *doc;
+    const char *doc;
     void *closure;
 } PyGetSetDef;
 
@@ -24,11 +24,11 @@
                                       void *wrapped, PyObject *kwds);
 
 struct wrapperbase {
-    char *name;
+    const char *name;
     int offset;
     void *function;
     wrapperfunc wrapper;
-    char *doc;
+    const char *doc;
     int flags;
     PyObject *name_strobj;
 };
diff --git a/Include/structmember.h b/Include/structmember.h
index 5da8a46..b54f708 100644
--- a/Include/structmember.h
+++ b/Include/structmember.h
@@ -16,11 +16,11 @@
    pointer is NULL. */
 
 typedef struct PyMemberDef {
-    char *name;
+    const char *name;
     int type;
     Py_ssize_t offset;
     int flags;
-    char *doc;
+    const char *doc;
 } PyMemberDef;
 
 /* Types */
diff --git a/Include/structseq.h b/Include/structseq.h
index af22716..e5e5d5c 100644
--- a/Include/structseq.h
+++ b/Include/structseq.h
@@ -8,13 +8,13 @@
 #endif
 
 typedef struct PyStructSequence_Field {
-    char *name;
-    char *doc;
+    const char *name;
+    const char *doc;
 } PyStructSequence_Field;
 
 typedef struct PyStructSequence_Desc {
-    char *name;
-    char *doc;
+    const char *name;
+    const char *doc;
     struct PyStructSequence_Field *fields;
     int n_in_sequence;
 } PyStructSequence_Desc;
diff --git a/Misc/NEWS b/Misc/NEWS
index 4eb0408..72114e8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -432,6 +432,10 @@
 C API
 -----
 
+- Issue #28761: The fields name and doc of structures PyMemberDef, PyGetSetDef,
+  PyStructSequence_Field, PyStructSequence_Desc, and wrapperbase are now of
+  type "const char *" rather of "char *".
+
 - Issue #28748: Private variable _Py_PackageContext is now of type "const char *"
   rather of "char *".
 
diff --git a/Objects/structseq.c b/Objects/structseq.c
index 6f1782f..c2ece5a 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -256,7 +256,7 @@
     }
 
     for (; i < n_fields; i++) {
-        char *n = Py_TYPE(self)->tp_members[i-n_unnamed_fields].name;
+        const char *n = Py_TYPE(self)->tp_members[i-n_unnamed_fields].name;
         if (PyDict_SetItemString(dict, n, self->ob_item[i]) < 0)
             goto error;
     }
