diff --git a/CMakeModules/FindSimox.cmake b/CMakeModules/FindSimox.cmake
index 2d4aeb9f1c2863ddc3944454770b2ec01dcc7203..e99a63aa3e58fbe49794351b1b30c5bc89bb5076 100644
--- a/CMakeModules/FindSimox.cmake
+++ b/CMakeModules/FindSimox.cmake
@@ -1,16 +1,32 @@
 # Find SIMOX 
 #
-# SIMOX_FOUND       - TRUE on success
-# SIMOX_INCLUDE_DIR - The include directory
-# SIMOX_LIBRARIES   - The libraries
+# This find script searches for simox and includes all neccessary config files.
 #
 # Search order
-#   1. ${Simox_DIR}
-#   2. $ENV{Simox_DIR}
-#   [ The paths should point to either the build or the install directory or Simox ]
-
-# Here a custom search directory can be manually set.
-#SET(Custom_Simox_DIR "C:/Projects/libs/Simox")
+##	1. ${Custom_Simox_DIR}
+##   2. ${Simox_DIR}
+##   3. $ENV{Simox_DIR}
+##   [ The paths should point to either the build or the install directory or Simox ]
+#
+# The following variables are set:
+## SIMOX_FOUND       - TRUE on success
+## SIMOX_INCLUDE_DIR - The include directory
+## SIMOX_LIBRARIES   - The libraries
+#
+#
+# A CMakeLists.txt file for setting up a simox related project could look like this:
+#
+## PROJECT ( myDemo )
+## SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).")
+## SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake)
+## FIND_PACKAGE(Simox REQUIRED)
+## IF(SIMOX_USE_COIN_VISUALIZATION)
+##   FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp)
+##   FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/myWindow.h)
+##   set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/myWindow.h)
+##   set(GUI_UIS ${PROJECT_SOURCE_DIR}/myWindow.ui)
+##   SimoxQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}")
+## ENDIF()
 
  
 #### CMAKE CONFIG
@@ -18,17 +34,24 @@ find_file( Simox_CMAKE_CONFIG SimoxConfig.cmake
                     "${Custom_Simox_DIR}/share/Simox/cmake" 
                     "${Simox_DIR}/share/Simox/cmake" 
                     "$ENV{Simox_DIR}/share/Simox/cmake")
-MESSAGE(STATUS "Simox_CMAKE_CONFIG: ${Simox_CMAKE_CONFIG}")
+
+MESSAGE(STATUS " * Including ${Simox_CMAKE_CONFIG}")
 include (${Simox_CMAKE_CONFIG})
 
 if( SIMOX_LIBRARIES AND SIMOX_BASE_DIR)
     set( SIMOX_FOUND TRUE )
     set( SIMOX_INCLUDE_DIR ${SIMOX_BASE_DIR} )
     set( SIMOX_LIBRARY ${SIMOX_LIBRARIES} )
+    
+	# include all library dependencies
+	MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake")
+	include(${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake)
+	MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxMacros.cmake")
+	include(${SIMOX_CMAKE_DIR}/SimoxMacros.cmake)
+
 endif()
 
 include( FindPackageHandleStandardArgs )
 find_package_handle_standard_args( Simox DEFAULT_MSG SIMOX_LIBRARIES SIMOX_INCLUDE_DIR )
 
 mark_as_advanced( SIMOX_INCLUDE_DIR SIMOX_LIBRARIES )
-
diff --git a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
index dc031e2a105d03a9e0309d57b492f84f528ae889..5439c577252ee674543b17011da6d23f2958cc22 100644
--- a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
+++ b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
@@ -1,18 +1,33 @@
 # Find VIRTUAL_ROBOT 
 #
+# This find script searches for VirtualRobot and includes all neccessary config files.
+#
 # VIRTUAL_ROBOT_FOUND       - TRUE on success
 # VIRTUAL_ROBOT_INCLUDE_DIR - The include directory
 # VIRTUAL_ROBOT_LIBRARIES   - The libraries
 #
 # Search order
-#   1. ${VirtualRobot_DIR}
-#   2. $ENV{VirtualRobot_DIR}
-#   3. ${Simox_DIR}
-#   4. $ENV{Simox_DIR}
-#   [ The paths should point to either the build or the install directory of Simox/VirtualRobot ]
+##  1. ${Custom_Simox_VR_DIR}
+##   2. ${VirtualRobot_DIR}
+##   3. $ENV{VirtualRobot_DIR}
+##   4. ${Simox_DIR}
+##   5. $ENV{Simox_DIR}
+##   [ The paths should point to either the build or the install directory of Simox/VirtualRobot ]
+#
+# A CMakeLists.txt file for setting up a VirtualRobot related project could look like this:
+#
+## PROJECT ( myDemo )
+## SET(VirtualRobot_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to VirtualRobot (install or build).")
+## SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${VirtualRobot_DIR}/share/VirtualRobot/cmake)
+## FIND_PACKAGE(VirtualRobot REQUIRED)
+## IF(VIRTUAL_ROBOT_USE_COIN_VISUALIZATION)
+##   FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp)
+##   FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/myWindow.h)
+##   set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/myWindow.h)
+##   set(GUI_UIS ${PROJECT_SOURCE_DIR}/myWindow.ui)
+##   VirtualRobotQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}")
+## ENDIF()
 
-# Here a custom search directory can be manually set.
-#SET(Custom_Simox_VR_DIR "C:/Projects/libs/VirtualRobot_standalone")
 
  
 #### CMAKE CONFIG
@@ -22,13 +37,21 @@ find_file( Simox_VR_CMAKE_CONFIG VirtualRobotConfig.cmake
                     "$ENV{VirtualRobot_DIR}/share/VirtualRobot/cmake" 
                     "${Simox_DIR}/share/VirtualRobot/cmake" 
                     "$ENV{Simox_DIR}/share/VirtualRobot/cmake")
-MESSAGE(STATUS " Simox_VR_CMAKE_CONFIG: ${Simox_VR_CMAKE_CONFIG}")
+MESSAGE(STATUS " Including ${Simox_VR_CMAKE_CONFIG}")
 include (${Simox_VR_CMAKE_CONFIG})
 
 if( VIRTUAL_ROBOT_LIBRARIES AND VIRTUAL_ROBOT_DIR)
+    
     set( VIRTUAL_ROBOT_FOUND TRUE )
     set( VIRTUAL_ROBOT_INCLUDE_DIR ${VIRTUAL_ROBOT_DIR} )
     set( VIRTUAL_ROBOT_LIBRARY ${VIRTUAL_ROBOT_LIBRARIES} )
+    
+	# include all library dependencies
+	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake")
+	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake)
+	
+	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake")
+	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake)
 endif()
 
 include( FindPackageHandleStandardArgs )
diff --git a/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake b/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake
index 423d905c21ae038a6d3308798a8ed5593730fec6..783184b1c44d682b66361e2df462184f4b4bef0d 100644
--- a/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake
+++ b/VirtualRobot/CMakeModules/VirtualRobotExternalLibrarySetup.cmake
@@ -7,6 +7,10 @@ MESSAGE(STATUS " * VIRTUAL_ROBOT_VISUALIZATION: ${VIRTUAL_ROBOT_VISUALIZATION}")
 
 IF (VIRTUAL_ROBOT_VISUALIZATION)
     # we need to check for Qt4
+    IF(NOT "$ENV{QT_QMAKE_EXECUTABLE}" STREQUAL "")
+	    MESSAGE (STATUS "USING QT-PATH from environment variable QT_QMAKE_EXECUTABLE: $ENV{QT_QMAKE_EXECUTABLE}")
+	    file(TO_CMAKE_PATH "$ENV{QT_QMAKE_EXECUTABLE}" QT_QMAKE_EXECUTABLE)
+	ENDIF()
     FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtOpenGL QtCore QtGui)
 ENDIF()
 
diff --git a/VirtualRobot/examples/GraspEditor/GraspEditor.cpp b/VirtualRobot/examples/GraspEditor/GraspEditor.cpp
index 7e693edcc0c6427bb1ccee8f61433bd88ea228c4..2e1a511759281393855ec35b63e30405c26e84f9 100644
--- a/VirtualRobot/examples/GraspEditor/GraspEditor.cpp
+++ b/VirtualRobot/examples/GraspEditor/GraspEditor.cpp
@@ -33,7 +33,7 @@ int main(int argc, char *argv[])
 	std::string filename1("objects/plate.xml");
 	std::string filename2("robots/ArmarIII/ArmarIII.xml");
 #if 1
-	filename1 = "objects/iCub/LegoXWing_RightHand_200.xml";
+	filename1 = "objects/iCub/LegoXWing_RightHand_300.xml";
 	filename2 = "robots/iCub/iCub.xml";
 #endif
 	VirtualRobot::RuntimeEnvironment::getDataFileAbsolute(filename1);
diff --git a/doc/external_project_setup.txt b/doc/external_project_setup.txt
index e9c34b224e28f663e5360dc52eccd3fa4d03499e..83a1fea7a92d710e5ba42a5ebf8983e3d5c38d92 100644
--- a/doc/external_project_setup.txt
+++ b/doc/external_project_setup.txt
@@ -8,46 +8,23 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
 CMAKE_POLICY(VERSION 2.6)
 
 ############################# SETUP PATHS TO Simox #############################
-GET_FILENAME_COMPONENT (CurrentPath ${CMAKE_CURRENT_LIST_FILE} PATH)
 
-# Either you set your environment variable or you edit the path here manually
-SET(SIMOX_DIR_STANDARD "$ENV{Simox_DIR}")
+# the environment variable Simox_DIR is initially used as path to simox.
+SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).")
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake)
 
-# be sure to have the absolute path
-get_filename_component(SIMOX_DIR_STANDARD ${SIMOX_DIR_STANDARD} ABSOLUTE)
+# now search simox (The file ${Simox_DIR}/share/Simox/cmake/FindSimox.cmake is used)
+FIND_PACKAGE(Simox REQUIRED)
 
-SET (SIMOX_DIR ${SIMOX_DIR_STANDARD} CACHE STRING "Path to Simox used by ${PROJECT_NAME}")
-
-# where is the build directory located
-SET (SIMOX_BUILD_DIRECTORY ${SIMOX_DIR}/build CACHE STRING "Path to Simox build directory")
-
-# include simox settings (handles lib search)
-INCLUDE(${SIMOX_DIR}/config.cmake)
-INCLUDE(${SIMOX_DIR}/CMakeModules/SimoxProject.cmake)
-
-# Makes the demo directory available in your code 
-SET(DEMO_BASE_DIR ${PROJECT_SOURCE_DIR})
-ADD_DEFINITIONS(-DDEMO_BASE_DIR="${DEMO_BASE_DIR}")
-
-IF(SIMOX_VISUALIZATION)
-
-    # Adjust these lines according to your filenames 
-	FILE(GLOB demo_SRCS ${PROJECT_SOURCE_DIR}/demoFile1.cpp ${PROJECT_SOURCE_DIR}/demoFile1.cpp)
-	FILE(GLOB demo_INCS ${PROJECT_SOURCE_DIR}/demoFile1.h)
+# Build only if Simox was created with Coin3D support.
+IF(SIMOX_USE_COIN_VISUALIZATION)
+	FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp)
+	FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/myWindow.h)
+	set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/myWindow.h)
+	set(GUI_UIS ${PROJECT_SOURCE_DIR}/myWindow.ui)
 	
-	# if you have a Qt-based project, you have to moc the QMainWindow class file
-    set(GUI_MOC_HDRS
-        ${PROJECT_SOURCE_DIR}/demoFile1.h
-    )
-    
-    # When you are using QtDesigner to build the UI, you can specify all .ui files here
-    set(GUI_UIS
-        ${PROJECT_SOURCE_DIR}/demoGuiFile.ui
-    )
-    
-    # pass file lists to simox cmake script: create the executable
-    simox_add_executable(${PROJECT_NAME} "${demo_SRCS}" "${demo_INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}")
-    
-ENDIF(SIMOX_VISUALIZATION)
+	# The simox macro handles qt-mocing, qt-ui building and simox related inlcude, compile and linker flags
+	SimoxQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}")
+ENDIF()
 
 <---- snippet ----->
diff --git a/readme.txt b/readme.txt
index 228dbbadadf00a3dde74337efdaffc6dbddccc43..67906ba8da018627b5ea78f08ce4f699c1474639 100644
--- a/readme.txt
+++ b/readme.txt
@@ -38,11 +38,11 @@ GNU GPL 2 (see license.txt)
 
 Copyright
 ---------
- 2011 Nikolaus Vahrenkamp
+ 2012 Nikolaus Vahrenkamp
 
 Contact
 -------
 Nikolaus Vahrenkamp
 vahrenkamp at users dot sf dot net
 http://wwwiaim.ira.uka.de/users/vahrenka
-http://simox.sourceforge.net
\ No newline at end of file
+http://simox.sourceforge.net