diff --git a/Source/CollisionDetection/Testing/imstkTetraToTetraCDTest.cpp b/Source/CollisionDetection/Testing/imstkTetraToTetraCDTest.cpp
index a1ab43d0c7c356e63e0ffacf065b633003504291..423d55cf5cdfad7d6b3f3264f54244e907b8e39b 100644
--- a/Source/CollisionDetection/Testing/imstkTetraToTetraCDTest.cpp
+++ b/Source/CollisionDetection/Testing/imstkTetraToTetraCDTest.cpp
@@ -105,7 +105,7 @@ TEST_F(imstkTetraToTetraCDTest, IntersectionThenNoIntersection1T)
     EXPECT_EQ(cd->PTColData.getSize(), 0);
 }
 
-TEST_F(imstkTetraToTetraCDTest, IntersectionThenNoIntersectionHuman)
+TEST_F(imstkTetraToTetraCDTest, DISABLED_IntersectionThenNoIntersectionHuman)
 {
     std::shared_ptr<TetrahedralMesh> a = loadMesh("/human/human.veg");
     auto                             b = duplicate(a);
@@ -146,7 +146,7 @@ TEST_F(imstkTetraToTetraCDTest, IntersectionThenNoIntersectionHuman)
     EXPECT_EQ(cd->PTColData.getSize(), 0);
 }
 
-TEST_F(imstkTetraToTetraCDTest, IntersectionOfDifferentMeshes)
+TEST_F(imstkTetraToTetraCDTest, DISABLED_IntersectionOfDifferentMeshes)
 {
     std::shared_ptr<TetrahedralMesh> a = loadMesh("/asianDragon/asianDragon.veg");
     std::shared_ptr<TetrahedralMesh> b = loadMesh("/human/human.veg");
diff --git a/Source/Common/TaskGraph/imstkTaskGraph.cpp b/Source/Common/TaskGraph/imstkTaskGraph.cpp
index 04a9ce5f09b5c85fbdd68e1cfe27746bf2042aef..fd5cf84bd808accf3145a309904fcc89995932c1 100644
--- a/Source/Common/TaskGraph/imstkTaskGraph.cpp
+++ b/Source/Common/TaskGraph/imstkTaskGraph.cpp
@@ -391,7 +391,10 @@ TaskGraph::topologicalSort(std::shared_ptr<TaskGraph> graph)
 
     for (TaskNodeAdjList::const_iterator i = invAdjList.begin(); i != invAdjList.end(); i++)
     {
-        numInputs[i->first] = invAdjList.size();
+        if (invAdjList.count(i->first) != 0)
+        {
+            numInputs[i->first] = invAdjList.at(i->first).size();
+        }
     }
 
     // Create an edge blacklist for edge removal during algorithm
diff --git a/Source/Common/Testing/imstkModuleTest.cpp b/Source/Common/Testing/imstkModuleTest.cpp
index c9d611bf9cd66b076bf45cb6f72c225aef532bed..32719c77b0377d2c9c8f84261f00b6c1fe5c8077 100644
--- a/Source/Common/Testing/imstkModuleTest.cpp
+++ b/Source/Common/Testing/imstkModuleTest.cpp
@@ -139,7 +139,7 @@ TEST_F(imstkModuleTest, ControlModule)
     ASSERT_TRUE(m_module.m_cleanup);
 
     auto t = std::thread([this] { m_module.start(); });
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Running);
     ASSERT_TRUE(m_module.m_init);
     ASSERT_TRUE(m_module.m_run);
@@ -147,19 +147,19 @@ TEST_F(imstkModuleTest, ControlModule)
     m_module.pause();
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Paused);
     m_module.m_run = false;
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_TRUE(m_module.m_init);
     ASSERT_FALSE(m_module.m_run);
 
     m_module.run();
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Running);
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_TRUE(m_module.m_init);
     ASSERT_TRUE(m_module.m_run);
 
     m_module.end();
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Inactive);
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_TRUE(m_module.m_init);
     ASSERT_TRUE(m_module.m_run);
     ASSERT_TRUE(m_module.m_cleanup);
@@ -168,7 +168,7 @@ TEST_F(imstkModuleTest, ControlModule)
     m_module.m_init = m_module.m_run = m_module.m_cleanup = false;
 
     t = std::thread([this] { m_module.start(); });
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Running);
     ASSERT_TRUE(m_module.m_init);
     ASSERT_TRUE(m_module.m_run);
@@ -177,14 +177,14 @@ TEST_F(imstkModuleTest, ControlModule)
     m_module.pause();
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Paused);
     m_module.m_run = false;
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_TRUE(m_module.m_init);
     ASSERT_FALSE(m_module.m_run);
     ASSERT_FALSE(m_module.m_cleanup);
 
     m_module.end();
     ASSERT_EQ(m_module.getStatus(), ModuleStatus::Inactive);
-    std::this_thread::sleep_for(std::chrono::milliseconds(50));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
     ASSERT_TRUE(m_module.m_init);
     ASSERT_FALSE(m_module.m_run);
     ASSERT_TRUE(m_module.m_cleanup);
diff --git a/Source/Scene/imstkScene.cpp b/Source/Scene/imstkScene.cpp
index dc6ee53090191c9257b1f81ad56cd1c14ecc3396..888b64ac509e9f0675357a2f46b79f8853c320ba 100644
--- a/Source/Scene/imstkScene.cpp
+++ b/Source/Scene/imstkScene.cpp
@@ -167,7 +167,6 @@ Scene::initTaskGraph()
     {
         m_taskGraphController = std::make_shared<SequentialTaskGraphController>();
     }
-    m_taskGraphController->setTaskGraph(m_taskGraph);
 
     // Reduce the graph, removing nonfunctional nodes, and redundant edges
     if (m_config->graphReductionEnabled)
@@ -193,6 +192,7 @@ Scene::initTaskGraph()
         writer.write();
     }
 
+    m_taskGraphController->setTaskGraph(m_taskGraph);
     m_taskGraphController->initialize();
 }