diff --git a/alib2data/src/std/visitor.hpp b/alib2data/src/std/visitor.hpp
index 64c7720032d6aa48f529958721702fcf9f2dd188..4a471db8927a8269c3715fd1a650b9dfc7065e79 100644
--- a/alib2data/src/std/visitor.hpp
+++ b/alib2data/src/std/visitor.hpp
@@ -65,7 +65,7 @@ struct const_promoting_helper<Tested, Other...> {
 			typename std::enable_if< std::is_constructible<Desired, Tested>::value >::type* = nullptr >
 	inline static bool tryPromote(void* userData, const Desired& first, const Base& second, const TargetVisitor& visitor) {
 		if(dynamic_cast<const Tested*>(&second)) {
-			visitor.Visit(userData, first, Desired(dynamic_cast<const Tested&>(second)));
+			visitor.Visit(userData, first, Desired(static_cast<const Tested&>(second)));
 			return true;
 		} else {
 			return const_promoting_helper<Other...>::tryPromote(userData, first, second, visitor);
@@ -133,7 +133,7 @@ public:
 	template<typename R>
 	void Visit1(void* userData, const T& first, const R& second) const {
 		if(dynamic_cast<const T*>(&second)) {
-			this->Visit(userData, first, dynamic_cast<const T&>(second));
+			this->Visit(userData, first, static_cast<const T&>(second));
 		} else {
 			throw std::logic_error("Same visitor: Visited types are different.");
 		}
@@ -153,7 +153,7 @@ public:
 	template<typename R>
 	void Visit1(void* userData, const T& first, const R& second) const {
 		if(dynamic_cast<const T*>(&second)) {
-			this->Visit(userData, first, dynamic_cast<const T&>(second));
+			this->Visit(userData, first, static_cast<const T&>(second));
 		} else {
 			throw std::logic_error("Same visitor: Visited types are different.");
 		}