  		{
  			wrapped.TestFinished (GetTestName (result.Test), GetLocalTestResult (result));
  		}
-@@ -182,9 +182,9 @@
+@@ -187,42 +188,42 @@
+ 		{
  			UnitTestResult res = new UnitTestResult ();
  			res.Message = t.Message;
- 			
+-			
 -			if (t is TestSuiteResult) {
-+			if (t is TestResult) {
++
++			if (t.IsFailure) {
++				res.Status = ResultStatus.Failure;
++				res.TotalFailures = 1;
++			}
++			else if (!t.Executed) {
++				res.Status = ResultStatus.Ignored;
++				res.TotalIgnored = 1;
++			}
++			else {
++				res.Status = ResultStatus.Success;
++				res.TotalSuccess = 1;
++			}
++
++			if (t.Results != null) {
  				int s=0, f=0, i=0;
 -				CountResults ((TestSuiteResult)t, ref s, ref f, ref i);
+-				res.TotalFailures = f;
+-				res.TotalSuccess = s;
+-				res.TotalIgnored = i;
 +				CountResults ((TestResult)t, ref s, ref f, ref i);
- 				res.TotalFailures = f;
- 				res.TotalSuccess = s;
- 				res.TotalIgnored = i;
-@@ -232,21 +232,21 @@
++				res.TotalFailures += f;
++				res.TotalSuccess += s;
++				res.TotalIgnored += i;
+ 				if (f > 0)
+ 					res.Status |= ResultStatus.Failure;
+ 				if (s > 0)
+ 					res.Status |= ResultStatus.Success;
+ 				if (i > 0)
+ 					res.Status |= ResultStatus.Ignored;
+-			} else {
+-				if (t.IsFailure) {
+-					res.Status = ResultStatus.Failure;
+-					res.TotalFailures = 1;
+-				}
+-				else if (!t.Executed) {
+-					res.Status = ResultStatus.Ignored;
+-					res.TotalIgnored = 1;
+-				}
+-				else {
+-					res.Status = ResultStatus.Success;
+-					res.TotalSuccess = 1;
+-				}
++                        }
+ 			
+-				if (string.IsNullOrEmpty (res.Message)) {
+-					if (t.IsFailure)
+-						res.Message = GettextCatalog.GetString ("Test failed");
+-					else if (!t.Executed)
+-						res.Message = GettextCatalog.GetString ("Test ignored");
+-					else {
+-						res.Message = GettextCatalog.GetString ("Test successful") + "\n\n";
+-						res.Message += GettextCatalog.GetString ("Execution time: {0:0.00}ms", t.Time);
+-					}
++			if (string.IsNullOrEmpty (res.Message)) {
++				if (t.IsFailure)
++					res.Message = GettextCatalog.GetString ("Test failed");
++				else if (!t.Executed)
++					res.Message = GettextCatalog.GetString ("Test ignored");
++				else {
++					res.Message = GettextCatalog.GetString ("Test successful") + "\n\n";
++					res.Message += GettextCatalog.GetString ("Execution time: {0:0.00}ms", t.Time);
+ 				}
+ 			}
+ 			res.StackTrace = t.StackTrace;
+@@ -238,21 +239,21 @@
  			return res;
  		}		
  		

 			TestPackage package = new TestPackage (assemblyPath);
 			package.Settings ["ShadowCopyFiles"] = false;
 			DomainManager dm = new DomainManager ();
@@ -116,7 +116,7 @@
 		{
 		}
 		

 		{
 			testSuites.Pop ();
 			wrapped.SuiteFinished (GetTestName (result.Test), GetLocalTestResult (result));
@@ -129,7 +130,7 @@
 			wrapped.SuiteStarted (GetTestName (suite));
 		}
 		
