diff --git a/include/boost/python/detail/unwind_type.hpp b/include/boost/python/detail/unwind_type.hpp
index f6cdab6..da9633b 100644
--- a/include/boost/python/detail/unwind_type.hpp
+++ b/include/boost/python/detail/unwind_type.hpp
@@ -11,7 +11,7 @@
 
 namespace boost { namespace python { namespace detail {
 
-#ifndef _MSC_VER //if forward declared, msvc6.5 does not recognize them as inline
+#if !defined(_MSC_VER) || _MSC_VER >= 1915 //if forward declared, msvc6.5 does not recognize them as inline
 // forward declaration, required (at least) by Tru64 cxx V6.5-042
 template <class Generator, class U>
 inline typename Generator::result_type
@@ -83,7 +83,7 @@ struct unwind_helper<false>
 
 template <class Generator, class U>
 inline typename Generator::result_type
-#ifndef _MSC_VER
+#if !defined(_MSC_VER) || _MSC_VER >= 1915
 unwind_type(U const& p, Generator*)
 #else
 unwind_type(U const& p, Generator* = 0)
@@ -148,7 +148,7 @@ struct unwind_helper2<reference_to_pointer_>
 // why bother?
 template <class Generator, class U>
 inline typename Generator::result_type
-#ifndef _MSC_VER
+#if !defined(_MSC_VER) || _MSC_VER >= 1915
 unwind_type(boost::type<U>*, Generator*)
 #else
 unwind_type(boost::type<U>*p =0, Generator* =0)
