diff --git a/VirtualRobot/Workspace/Manipulability.cpp b/VirtualRobot/Workspace/Manipulability.cpp
index a7d5ad8be42fef63f866d531d11865238f846e5f..a9105b948e96c902862330a0f9311d73a2bff1f1 100644
--- a/VirtualRobot/Workspace/Manipulability.cpp
+++ b/VirtualRobot/Workspace/Manipulability.cpp
@@ -448,7 +448,8 @@ namespace VirtualRobot
             p(2) = 1.0f;
             float q = measure->getPoseQuality(p);
 #else
-            float q = measure->getPoseQuality();
+//            float q = measure->getPoseQuality();
+            float q = getCurrentManipulability();
 #endif
 
             if (q > storeMaxManipulability)
diff --git a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
index e007c87c89d0241c475d9083b4cecf61b51039c2..d27854a6e3130aceab8f5609f4ebf7a799778e3f 100644
--- a/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
+++ b/VirtualRobot/Workspace/WorkspaceRepresentation.cpp
@@ -2135,6 +2135,8 @@ namespace VirtualRobot
 
     void WorkspaceRepresentation::addRandomTCPPoses(unsigned int loops, unsigned int numThreads, bool checkForSelfCollisions)
     {
+        THROW_VR_EXCEPTION_IF(!data || !nodeSet || !tcpNode, "Workspace data not initialized");
+
         if (numThreads > loops)
         {
             VR_ERROR << "Number of threads can not be bigger then number of tcp poses to add.";
@@ -2162,7 +2164,7 @@ namespace VirtualRobot
                     staticCollisionModel = clonedRobot->getRobotNodeSet(staticCollisionModel->getName());
                 }
 
-                SceneObjectSetPtr dynamicCollisionModel = this->staticCollisionModel;
+                SceneObjectSetPtr dynamicCollisionModel = this->dynamicCollisionModel;
                 if (dynamicCollisionModel && clonedRobot->hasRobotNodeSet(dynamicCollisionModel->getName()))
                 {
                     dynamicCollisionModel = clonedRobot->getRobotNodeSet(dynamicCollisionModel->getName());
diff --git a/VirtualRobot/Workspace/WorkspaceRepresentation.h b/VirtualRobot/Workspace/WorkspaceRepresentation.h
index ee412c5f602411c9538292a92e18f24549e4d57d..568350511befcc9ad3d6ea4ab06d415700ef8d60 100644
--- a/VirtualRobot/Workspace/WorkspaceRepresentation.h
+++ b/VirtualRobot/Workspace/WorkspaceRepresentation.h
@@ -374,8 +374,8 @@ namespace VirtualRobot
         */
         void addRandomTCPPoses(unsigned int loops, bool checkForSelfCollisions = true);
         /*!
-            Appends a number of random TCP poses to workspace Data. This method uses several threads behind the scenes to
-            speed up the process.
+            Appends a number of random TCP poses to workspace Data (multithreaded).
+            This method is blocking, i.e. it returns as soon as all threads are done.
             \param loops Number of poses that should be appended
             \param numThreads number of worker threads used behind the scenes to append random TCP poses to workspace data.
             \param checkForSelfCollisions Build a collision-free configuration. If true, random configs are generated until one is collision-free.