diff --git a/Socket/SocketPolicy.ct b/Socket/SocketPolicy.ct
index bec4f71bcfea7add243e96912df3affc48cb3e19..db5ea1cfb284c6a79b72b41fc81c12cf527b5c39 100644
--- a/Socket/SocketPolicy.ct
+++ b/Socket/SocketPolicy.ct
@@ -41,7 +41,7 @@ checkBaseOf(SocketPolicyBase const & other)
     // check, wether each policy of other is (dynamically!) convertible
     // to the corresponding (static) policy of this class. Throws
     // std::bad_cast on failure
-#   define SP_CheckPolicy(x1,x2,SomePolicy) (void) dynamic_cast<SomePolicy const &>(other.BOOST_PP_CAT(the,SomePolicy)());
+#   define SP_CheckPolicy(x1,x2,SomePolicy) (void) dynamic_cast<BOOST_PP_CAT(SomePolicy,_) const &>(other.BOOST_PP_CAT(the,SomePolicy)());
     BOOST_PP_SEQ_FOR_EACH( SP_CheckPolicy, , SENF_SOCKET_POLICIES )
 #   undef SP_CheckPolicy
 }
diff --git a/Socket/SocketPolicy.test.cc b/Socket/SocketPolicy.test.cc
index 534f40d6e70ccd27bc3b46d572dc19a7a8a34323..83aa97566fed332df46772143fd0e022b6dd6477 100644
--- a/Socket/SocketPolicy.test.cc
+++ b/Socket/SocketPolicy.test.cc
@@ -83,7 +83,7 @@ namespace {
 
 BOOST_AUTO_UNIT_TEST(socketPolicy)
 {
-    // All these checks are really compile-time checks ...
+    // Most of these checks are really compile-time checks ...
 
     typedef MakeSocketPolicy<
         UnixAddressingPolicy,
@@ -122,12 +122,22 @@ BOOST_AUTO_UNIT_TEST(socketPolicy)
     // The following should fail at compile time
     // BOOST_MPL_ASSERT(( SocketPolicyIsBaseOf<Policy1,Policy3> ));
 
-    ConvertibleValue<Policy1> p1;
-    ConvertibleValue<Policy3> p3(p1);
+    {
+        ConvertibleValue<Policy1> p1;
+        ConvertibleValue<Policy3> p3(p1);
+
+        p3 = p1;
+        // The following should fail at compile time
+        // p1 = p3;
+    }
+    
+    {
+        Policy1 p1;
+        Policy3 p3;
 
-    p3 = p1;
-    // The following should fail at compile time
-    // p1 = p3;
+        BOOST_CHECK_THROW( Policy1::checkBaseOf(p3), std::bad_cast );
+        BOOST_CHECK_NO_THROW( Policy3::checkBaseOf(p1) );
+    }
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////