diff --git a/boost/bimap/unordered_set_of.hpp b/boost/bimap/unordered_set_of.hpp
index e39c2314bfa5783b4e186b2e0a1b94dd189047db..2f169e72055ce1aa1d7006637d1c783523cfbd96 100644
--- a/boost/bimap/unordered_set_of.hpp
+++ b/boost/bimap/unordered_set_of.hpp
@@ -139,9 +139,14 @@ struct unordered_set_of : public ::boost::bimaps::detail::set_type_of_tag
         BOOST_CLASS_REQUIRE ( value_type,
                               boost, AssignableConcept );
 
-        BOOST_CLASS_REQUIRE3( hasher, std::size_t, value_type,
-                              boost, UnaryFunctionConcept );
-
+	typedef void (boost::UnaryFunctionConcept <hasher,std::size_t,value_type>::*
+		      funchasherstdsize_tvalue_typeconcept)();
+	template <funchasherstdsize_tvalue_typeconcept Tp1_>
+	struct concept_checking_hasherstdsize_tvalue_typeconcept { };
+	typedef concept_checking_hasherstdsize_tvalue_typeconcept<
+	    BOOST_FPTR boost::UnaryFunctionConcept<hasher,std::size_t,value_type>::constraints>
+	concept_checking_typedef_hasherstdsize_tvalue_typeconcept;
+	
         BOOST_CLASS_REQUIRE4( key_equal, bool, value_type, value_type,
                               boost, BinaryFunctionConcept );