diff --git a/include/boost/preprocessor/tuple/elem.hpp b/include/boost/preprocessor/tuple/elem.hpp
index 54d836d..430178a 100644
--- a/include/boost/preprocessor/tuple/elem.hpp
+++ b/include/boost/preprocessor/tuple/elem.hpp
@@ -31,7 +31,23 @@ BOOST_PP_TUPLE_ELEM(2,1,(A,B))
BOOST_PP_LIMIT_TUPLE
*/
-#define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE) BOOST_PP_DETAIL_EXPAND2(BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE16_ELEM,INDEX),BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE_ELEM_EX,SIZE_OF_TUPLE) TUPLE)
+
+#if !defined(__MWERKS__) || __MWERKS__ > 0x3000
+# define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE)\
+ BOOST_PP_DETAIL_EXPAND2(\
+ BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE16_ELEM,INDEX)\
+ ,BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE_ELEM_EX,SIZE_OF_TUPLE) TUPLE\
+ )\
+/**/
+#else
+# define BOOST_PP_TUPLE_ELEM_CAT2(A,B) A##B
+# define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE)\
+ BOOST_PP_DETAIL_CAT2(\
+ BOOST_PP_TUPLE16_ELEM##INDEX\
+ ,BOOST_PP_TUPLE_ELEM_CAT2(BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE_ELEM_EX,SIZE_OF_TUPLE),TUPLE)\
+ )\
+/**/
+#endif
#define BOOST_PP_TUPLE_ELEM_EX1(A) (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)
#define BOOST_PP_TUPLE_ELEM_EX2(A,B) (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)