diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp b/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
index d1e10e97f8a89dafba0671a704f5814f5ca5ca84..3a066c978c6464055b8968e9c8c893b6b91412f4 100644
--- a/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
+++ b/source/RobotAPI/components/ArViz/Coin/VisualizationObject.cpp
@@ -9,6 +9,8 @@
 #include <VirtualRobot/XML/ObjectIO.h>
 #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualization.h>
 
+#include <boost/algorithm/string/predicate.hpp>
+
 
 namespace armarx::viz::coin
 {
@@ -46,7 +48,19 @@ namespace armarx::viz::coin
             try
             {
                 ARMARX_INFO << "Loading object from " << fullFilename;
-                result = VirtualRobot::ObjectIO::loadManipulationObject(fullFilename);
+
+                if (boost::ends_with(fullFilename, ".wrl"))
+                {
+                    VirtualRobot::VisualizationFactoryPtr factory = VirtualRobot::VisualizationFactory::fromName("inventor", NULL);
+                    VirtualRobot::VisualizationNodePtr vis = factory->getVisualizationFromFile(fullFilename);
+                    result = VirtualRobot::ManipulationObjectPtr(new VirtualRobot::ManipulationObject(filename, vis));
+
+                }
+                else
+                {
+                    result = VirtualRobot::ObjectIO::loadManipulationObject(fullFilename);
+
+                }
             }
             catch (std::exception const& ex)
             {
@@ -55,6 +69,7 @@ namespace armarx::viz::coin
             }
 
 
+
             return result;
         }