diff --git a/SimDynamics/examples/SimDynamicsViewer/simDynamicsWindow.cpp b/SimDynamics/examples/SimDynamicsViewer/simDynamicsWindow.cpp
index 596d53aab225768167fa9a67ad7530a42dd26723..6858a1761b2e474dfeacf68b28ff3d65f3360d8c 100644
--- a/SimDynamics/examples/SimDynamicsViewer/simDynamicsWindow.cpp
+++ b/SimDynamics/examples/SimDynamicsViewer/simDynamicsWindow.cpp
@@ -364,7 +364,7 @@ void SimDynamicsWindow::updateJointInfo()
 		rn = robotNodes[n];
 	}
 	SimDynamics::DynamicsObjectPtr dynRN = dynamicsRobot->getDynamicsRobotNode(rn);
-	SimDynamics::BulletObjectPtr bulletRN = boost::shared_dynamic_cast<SimDynamics::BulletObject>(dynRN);
+	SimDynamics::BulletObjectPtr bulletRN = boost::dynamic_pointer_cast<SimDynamics::BulletObject>(dynRN);
 	if (bulletRN)
 	{
 //		cout << "FORCE: " << bulletRN->getRigidBody()->getTotalForce()[0] << ", " << bulletRN->getRigidBody()->getTotalForce()[1] << ", " << bulletRN->getRigidBody()->getTotalForce()[2] << endl;
@@ -373,7 +373,7 @@ void SimDynamicsWindow::updateJointInfo()
 //		cout << "getAngularVelocity: " << bulletRN->getRigidBody()->getAngularVelocity()[0] << ", " << bulletRN->getRigidBody()->getAngularVelocity()[1] << ", " << bulletRN->getRigidBody()->getAngularVelocity()[2] << endl;
 		
 	}
-	BulletRobotPtr bulletRobot = boost::shared_dynamic_cast<SimDynamics::BulletRobot>(dynamicsRobot);
+	BulletRobotPtr bulletRobot = boost::dynamic_pointer_cast<SimDynamics::BulletRobot>(dynamicsRobot);
 	if (rn && bulletRobot && bulletRobot->hasLink(rn))
 	{
 		BulletRobot::LinkInfo linkInfo = bulletRobot->getLink(rn);
diff --git a/VirtualRobot/COLLADA/ColladaIO.h b/VirtualRobot/COLLADA/ColladaIO.h
index faa798fbf828138433e056929a78af0835cd8203..9ce8ead73246799691f7f4f4ea289e17fbb1a516 100644
--- a/VirtualRobot/COLLADA/ColladaIO.h
+++ b/VirtualRobot/COLLADA/ColladaIO.h
@@ -15,10 +15,11 @@
 #include <VirtualRobot/Visualization/TriMeshModel.h>
 #include <Eigen/Core>
 #include <Eigen/Geometry>
+#include "../VirtualRobotImportExport.h"
 
 namespace VirtualRobot {
 
-class ColladaIO {
+	class VIRTUAL_ROBOT_IMPORT_EXPORT ColladaIO {
     public:
 		EIGEN_MAKE_ALIGNED_OPERATOR_NEW
 
diff --git a/VirtualRobot/COLLADA/ColladaParser.h b/VirtualRobot/COLLADA/ColladaParser.h
index 55a7f75c27d8ea751606ac19f10b94b9708354e0..af8abd56b2b9deeedbc909e02268258e6560c629 100644
--- a/VirtualRobot/COLLADA/ColladaParser.h
+++ b/VirtualRobot/COLLADA/ColladaParser.h
@@ -32,6 +32,7 @@
 #include <boost/lambda/lambda.hpp>
 #include <boost/shared_ptr.hpp>
 #include <ostream>
+#include "../VirtualRobotImportExport.h"
 
  namespace VirtualRobot {
 
@@ -41,7 +42,7 @@
  * the OpenGRASP robot editor. Once the file is read, the kinematic and visual structure is
  * stored in a tree shaped data structure for further processing.
  */
-class ColladaParser {
+	 class VIRTUAL_ROBOT_IMPORT_EXPORT ColladaParser {
     public:
 
         /** @brief Class that represents the visual appearance of a robot node
diff --git a/VirtualRobot/examples/ColladaViewer/CMakeLists.txt b/VirtualRobot/examples/ColladaViewer/CMakeLists.txt
index e4c986c9095589b57e60b151767d8e193b9573df..d1797203b04c887884386509106acd9140e201bd 100644
--- a/VirtualRobot/examples/ColladaViewer/CMakeLists.txt
+++ b/VirtualRobot/examples/ColladaViewer/CMakeLists.txt
@@ -4,7 +4,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4)
 
 CMAKE_POLICY(VERSION 2.6)
 
-IF(VirtualRobot_USE_COIN_VISUALIZATION AND VirtualRobot_USE_COLLADA)
+IF(Simox_USE_COIN_VISUALIZATION AND Simox_USE_COLLADA)
 
 
     GET_FILENAME_COMPONENT (CurrentPath ${CMAKE_CURRENT_LIST_FILE} PATH)
@@ -33,34 +33,28 @@ IF(VirtualRobot_USE_COIN_VISUALIZATION AND VirtualRobot_USE_COLLADA)
         ${PROJECT_SOURCE_DIR}/RobotViewer.ui
     )
 
-    qt4_wrap_cpp(demo_SRCS ${mocFiles})
-    qt4_wrap_ui(UI_HEADER ${uiFiles})
-    get_filename_component(UI_HEADER_DIR ${UI_HEADER} PATH)
-    list(APPEND demo_INCS ${UI_HEADER})
 
-    include_directories(${UI_HEADER_DIR})
+
 
     add_definitions( -DDEMO_PATH=\"${PROJECT_SOURCE_DIR}\" )
     add_definitions( " -DDOM_DYNAMIC " )
-    # create the executable
-    ADD_EXECUTABLE(${PROJECT_NAME} ${demo_SRCS} ${demo_INCS})
-
-    SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples")
-    SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${VirtualRobot_BIN_DIR})
-
-    TARGET_LINK_LIBRARIES(${PROJECT_NAME} VirtualRobot ${VirtualRobot_VISUALIZATION_LIBS} ${VirtualRobot_EXTERNAL_LIBRARIES})
-
-    INCLUDE_DIRECTORIES(${VirtualRobot_VISUALIZATION_INCLUDE_PATHS})
-    INCLUDE(${QT_USE_FILE})
-
-    ADD_DEFINITIONS(${VirtualRobot_VISUALIZATION_COMPILE_FLAGS})
-
-    INSTALL(TARGETS ${PROJECT_NAME}
-        DESTINATION ${VirtualRobot_INSTALL_BIN_DIR}
-    COMPONENT Applications
-    )
 
-    MESSAGE( STATUS ${PROJECT_NAME} " will be placed into " ${VirtualRobot_BIN_DIR})
-    MESSAGE( STATUS ${PROJECT_NAME} " will be installed into " ${VirtualRobot_INSTALL_BIN_DIR})
+	# create the executable
+  VirtualRobotQtApplication(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${mocFiles}" "${uiFiles}")
+  SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${Simox_BIN_DIR})
+  SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES FOLDER "Examples")
+   
+  #######################################################################################
+  ############################ Setup for installation ###################################
+  #######################################################################################
+
+  install(TARGETS ${PROJECT_NAME}
+    # IMPORTANT: Add the library to the "export-set"
+    EXPORT SimoxTargets
+    RUNTIME DESTINATION "${INSTALL_BIN_DIR}" COMPONENT bin
+    COMPONENT dev)
+
+  MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be placed into " ${Simox_BIN_DIR})
+  MESSAGE( STATUS " ** Simox application ${PROJECT_NAME} will be installed into " ${INSTALL_BIN_DIR})
 
 ENDIF()
diff --git a/config.cmake b/config.cmake
index c5d9e07d9afb0ea1d9a8f01f609b8313c9054657..f8d06f5db66d331bc841d48177f05760441737cd 100644
--- a/config.cmake
+++ b/config.cmake
@@ -306,6 +306,8 @@ IF (NOT Simox_CONFIGURED)
 
 	        SET (Simox_EXTERNAL_INCLUDE_DIRS ${Simox_EXTERNAL_INCLUDE_DIRS} ${COLLADA_DOM_INCLUDE_DIRS})
 			    SET (Simox_EXTERNAL_LIBRARIES ${Simox_EXTERNAL_LIBRARIES} ${COLLADA_LIBRARY})
+
+			SET (Simox_EXTERNAL_LIBRARY_FLAGS "${Simox_EXTERNAL_LIBRARY_FLAGS} -DDOM_DYNAMIC ")
 	    ENDIF()
 	endif()