diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 9ae52c2..10fa182 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -115,9 +115,13 @@
   first introduced in Python 3.4.  It offers better performance and smaller
   size compared to Protocol 3 available since Python 3.0.
 
+
 Build and C API Changes
 =======================
 
+* The result of :c:func:`PyExceptionClass_Name` is now of type
+  ``const char *`` rather of ``char *``.
+  (Contributed by Serhiy Storchaka in :issue:`33818`.)
 
 
 Deprecated
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index 5b62658..416d750 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -140,10 +140,9 @@
 #define PyExceptionInstance_Check(x)                    \
     PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS)
 
-PyAPI_FUNC(char *) PyExceptionClass_Name(PyObject *);
+PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *);
 #ifndef Py_LIMITED_API
-#define PyExceptionClass_Name(x) \
-     ((char *)(((PyTypeObject *)(x))->tp_name))
+#define PyExceptionClass_Name(x)  (((PyTypeObject*)(x))->tp_name)
 #endif
 
 #define PyExceptionInstance_Class(x) ((PyObject*)((x)->ob_type))
diff --git a/Misc/NEWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst b/Misc/NEWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst
new file mode 100644
index 0000000..0f30a6e
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2018-06-10-09-42-31.bpo-33818.50nlf3.rst
@@ -0,0 +1,2 @@
+:c:func:`PyExceptionClass_Name` will now return ``const char *`` instead of
+``char *``.
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index e1615b2..bb50c1c 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -344,10 +344,10 @@
 
 #undef PyExceptionClass_Name
 
-char *
+const char *
 PyExceptionClass_Name(PyObject *ob)
 {
-    return (char *)((PyTypeObject*)ob)->tp_name;
+    return ((PyTypeObject*)ob)->tp_name;
 }
 
 static struct PyMemberDef BaseException_members[] = {
diff --git a/Python/errors.c b/Python/errors.c
index 15e6ba0..98910b4 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -947,7 +947,7 @@
     _Py_IDENTIFIER(__module__);
     PyObject *f, *t, *v, *tb;
     PyObject *moduleName = NULL;
-    char* className;
+    const char *className;
 
     PyErr_Fetch(&t, &v, &tb);
 
@@ -977,7 +977,7 @@
     assert(PyExceptionClass_Check(t));
     className = PyExceptionClass_Name(t);
     if (className != NULL) {
-        char *dot = strrchr(className, '.');
+        const char *dot = strrchr(className, '.');
         if (dot != NULL)
             className = dot+1;
     }
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 26f74c8..3d40c79 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -774,12 +774,12 @@
     }
     else {
         PyObject* moduleName;
-        char* className;
+        const char *className;
         _Py_IDENTIFIER(__module__);
         assert(PyExceptionClass_Check(type));
         className = PyExceptionClass_Name(type);
         if (className != NULL) {
-            char *dot = strrchr(className, '.');
+            const char *dot = strrchr(className, '.');
             if (dot != NULL)
                 className = dot+1;
         }
