diff --git a/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs b/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs
index 10deef6..c7a0c4b 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs
+++ b/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs
@@ -67,13 +67,25 @@
             Assert.Equal(numTasks, runningTaskCount);
 
             // Tasks should fail or complete or disappear with failed evaluator
-            Assert.Equal(numTasks, completedTaskCount + failedEvaluatorCount + failedTaskCount);
-
+            // However, if the updateTask is completed before receiving Close event from the driver, 
+            // TaskRuntime informs the driver about the result before throwing exception caused by the dispose in 
+            // the result handler, that may end up two events from the update task/evaluator, one is CompletedTask, 
+            // the other is FailedEvaluator
+            var total = completedTaskCount + failedEvaluatorCount + failedTaskCount;
+            var faildMsg = string.Format(
+                "Expected total events: {0}, actual number of events {1}, completedTaskCount: {2}, failedEvaluatorCount: {3}, failedTaskCount: {4}.",
+                numTasks,
+                total,
+                completedTaskCount,
+                failedEvaluatorCount,
+                failedTaskCount);
+            Assert.True(numTasks == total || numTasks == total - 1, faildMsg);
+                
             // We have failed two mappers and one update evaluator in the test code. As the update evaluator failure 
             // happens in Dispose(), driver may/may not receive FailedEvaluator before shut down.
-            Assert.True(failedEvaluatorCount <= 3 && failedEvaluatorCount >= 2);
+            Assert.True(failedEvaluatorCount <= 3 && failedEvaluatorCount >= 2, "failedEvaluatorCount is " + failedEvaluatorCount);
 
-            // eventually job fail because master evaluator fail before the iteration is completed
+            // eventually job fails because master evaluator fails before the iteration is completed
             Assert.Equal(0, jobSuccess);
             CleanUp(testFolder);
         }
