diff --git a/include/boost/preprocessor/tuple/elem.hpp b/include/boost/preprocessor/tuple/elem.hpp
index a307cb8..f4e586b 100644
--- a/include/boost/preprocessor/tuple/elem.hpp
+++ b/include/boost/preprocessor/tuple/elem.hpp
@@ -17,8 +17,6 @@
Click here to see the header.
*/
-#include
-
//! Expands to the I:th element of an N-tuple.
/*!
For example,
@@ -48,8 +46,13 @@ See BOOST_PP_LIMIT_TUPLE.
// This is a workaround for a CodeWarrior PP bug. Strictly speaking
// this workaround invokes undefined behavior, but it works as desired.
# define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_TUPLE##N##_ELEM##I##T
-#else
+#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER)
+# include
+// This is a workaround for a MSVC++ PP bug. It should not be necessary
+// to use BOOST_PP_EXPAND(). Works on standard conforming compilers, too.
# define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_EXPAND(BOOST_PP_TUPLE##N##_ELEM##I T)
+#else
+# define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_TUPLE##N##_ELEM##I T
#endif
// NOTE: TUPLE_ELEM can be implemented in O(N*N) space and O(N) time instead