diff --git a/Include/pgenheaders.h b/Include/pgenheaders.h
index 77acca5..2049ae3 100644
--- a/Include/pgenheaders.h
+++ b/Include/pgenheaders.h
@@ -10,9 +10,9 @@
 #include "Python.h"
 
 PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...)
-			__attribute__((format(printf, 1, 2)));
+			Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
 PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...)
-			__attribute__((format(printf, 1, 2)));
+			Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
 
 #define addarc _Py_addarc
 #define addbit _Py_addbit
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index bd44e02..119aa2e 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -83,7 +83,7 @@
 PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *);
 PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename(PyObject *, char *);
 PyAPI_FUNC(PyObject *) PyErr_Format(PyObject *, const char *, ...)
-			__attribute__((format(printf, 2, 3)));
+			Py_GCC_ATTRIBUTE((format(printf, 2, 3)));
 #ifdef MS_WINDOWS
 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilename(int, const char *);
 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int);
@@ -195,9 +195,9 @@
 
 #include <stdarg.h>
 PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char  *format, ...)
-			__attribute__((format(printf, 3, 4)));
+			Py_GCC_ATTRIBUTE((format(printf, 3, 4)));
 PyAPI_FUNC(int) PyOS_vsnprintf(char *str, size_t size, const char  *format, va_list va)
-			__attribute__((format(printf, 3, 0)));
+			Py_GCC_ATTRIBUTE((format(printf, 3, 0)));
 
 #ifdef __cplusplus
 }
diff --git a/Include/pyport.h b/Include/pyport.h
index f1c42fb..5395b10 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -531,7 +531,9 @@
 #if (!defined(__GNUC__) || __GNUC__ < 2 || \
      (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ) && \
     !defined(RISCOS)
-#define __attribute__(__x)
+#define Py_GCC_ATTRIBUTE(x)
+#else
+#define Py_GCC_ATTRIBUTE(x) __attribute__(x)
 #endif
 
 #endif /* Py_PYPORT_H */
diff --git a/Include/stringobject.h b/Include/stringobject.h
index ff30704..7f67a1f 100644
--- a/Include/stringobject.h
+++ b/Include/stringobject.h
@@ -52,9 +52,9 @@
 PyAPI_FUNC(PyObject *) PyString_FromStringAndSize(const char *, int);
 PyAPI_FUNC(PyObject *) PyString_FromString(const char *);
 PyAPI_FUNC(PyObject *) PyString_FromFormatV(const char*, va_list)
-				__attribute__((format(printf, 1, 0)));
+				Py_GCC_ATTRIBUTE((format(printf, 1, 0)));
 PyAPI_FUNC(PyObject *) PyString_FromFormat(const char*, ...)
-				__attribute__((format(printf, 1, 2)));
+				Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
 PyAPI_FUNC(int) PyString_Size(PyObject *);
 PyAPI_FUNC(char *) PyString_AsString(PyObject *);
 PyAPI_FUNC(PyObject *) PyString_Repr(PyObject *, int);
diff --git a/Include/sysmodule.h b/Include/sysmodule.h
index 4f05ac9..1c9b187 100644
--- a/Include/sysmodule.h
+++ b/Include/sysmodule.h
@@ -14,9 +14,9 @@
 PyAPI_FUNC(void) PySys_SetPath(char *);
 
 PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...)
-			__attribute__((format(printf, 1, 2)));
+			Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
 PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...)
-			__attribute__((format(printf, 1, 2)));
+			Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
 
 PyAPI_DATA(PyObject *) _PySys_TraceFunc, *_PySys_ProfileFunc;
 PyAPI_DATA(int) _PySys_CheckInterval;
