diff --git a/Include/objimpl.h b/Include/objimpl.h
index 6ce6455..b3d3a81 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -144,7 +144,7 @@
    See also pymem.h.
 
    These inline functions expect non-NULL object pointers. */
-Py_STATIC_INLINE(PyObject*)
+static inline PyObject*
 PyObject_INIT(PyObject *op, PyTypeObject *typeobj)
 {
     assert(op != NULL);
@@ -153,7 +153,7 @@
     return op;
 }
 
-Py_STATIC_INLINE(PyVarObject*)
+static inline PyVarObject*
 PyObject_INIT_VAR(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size)
 {
     assert(op != NULL);
diff --git a/Include/pydtrace.h b/Include/pydtrace.h
index cfe192f..037961d 100644
--- a/Include/pydtrace.h
+++ b/Include/pydtrace.h
@@ -25,29 +25,29 @@
 
 /* Without DTrace, compile to nothing. */
 
-Py_STATIC_INLINE(void) PyDTrace_LINE(const char *arg0, const char *arg1, int arg2) {}
-Py_STATIC_INLINE(void) PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int arg2)  {}
-Py_STATIC_INLINE(void) PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int arg2) {}
-Py_STATIC_INLINE(void) PyDTrace_GC_START(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_GC_DONE(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_INSTANCE_NEW_START(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_INSTANCE_NEW_DONE(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_INSTANCE_DELETE_START(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_INSTANCE_DELETE_DONE(int arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0) {}
-Py_STATIC_INLINE(void) PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1) {}
+static inline void PyDTrace_LINE(const char *arg0, const char *arg1, int arg2) {}
+static inline void PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int arg2)  {}
+static inline void PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int arg2) {}
+static inline void PyDTrace_GC_START(int arg0) {}
+static inline void PyDTrace_GC_DONE(int arg0) {}
+static inline void PyDTrace_INSTANCE_NEW_START(int arg0) {}
+static inline void PyDTrace_INSTANCE_NEW_DONE(int arg0) {}
+static inline void PyDTrace_INSTANCE_DELETE_START(int arg0) {}
+static inline void PyDTrace_INSTANCE_DELETE_DONE(int arg0) {}
+static inline void PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0) {}
+static inline void PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1) {}
 
-Py_STATIC_INLINE(int) PyDTrace_LINE_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_FUNCTION_RETURN_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_GC_START_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_GC_DONE_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_INSTANCE_NEW_START_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_INSTANCE_NEW_DONE_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_INSTANCE_DELETE_START_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void) { return 0; }
-Py_STATIC_INLINE(int) PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void) { return 0; }
+static inline int PyDTrace_LINE_ENABLED(void) { return 0; }
+static inline int PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; }
+static inline int PyDTrace_FUNCTION_RETURN_ENABLED(void) { return 0; }
+static inline int PyDTrace_GC_START_ENABLED(void) { return 0; }
+static inline int PyDTrace_GC_DONE_ENABLED(void) { return 0; }
+static inline int PyDTrace_INSTANCE_NEW_START_ENABLED(void) { return 0; }
+static inline int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void) { return 0; }
+static inline int PyDTrace_INSTANCE_DELETE_START_ENABLED(void) { return 0; }
+static inline int PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void) { return 0; }
+static inline int PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void) { return 0; }
+static inline int PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void) { return 0; }
 
 #endif /* !WITH_DTRACE */
 
diff --git a/Include/pyport.h b/Include/pyport.h
index 2f87f53..7f88c4f 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -178,23 +178,6 @@
 #  define Py_LOCAL_INLINE(type) static inline type
 #endif
 
-/* Declare a "static inline" function. Typical usage:
-
-     Py_STATIC_INLINE(int) add(int a, int b) { return a + b; }
-
-   If the compiler supports it, try to always inline the function even if no
-   optimization level was specified. */
-#if defined(__GNUC__) || defined(__clang__)
-#  define Py_STATIC_INLINE(TYPE) \
-       __attribute__((always_inline)) static inline TYPE
-#elif defined(_MSC_VER)
-#  define Py_STATIC_INLINE(TYPE) \
-       static __forceinline TYPE
-#else
-#  define Py_STATIC_INLINE(TYPE) static inline TYPE
-#endif
-
-
 /* Py_MEMCPY is kept for backwards compatibility,
  * see https://bugs.python.org/issue28126 */
 #define Py_MEMCPY memcpy
