Index: SuiteResult.java
===================================================================
--- SuiteResult.java	(revision 32250)
+++ SuiteResult.java	(working copy)
@@ -14,14 +14,27 @@
 public class SuiteResult implements Serializable {
 
 	private int numTestPasses;
-	private int numTestFailures;	
+	private int numTestFailures;
+	private int numCommandPasses;
+	private int numCommandFailures;
+	private int numCommandErrors;
+
 		
 	public SuiteResult(int numTestPasses, int numTestFailures)
 	{
 		this.numTestPasses = numTestPasses;
-		this.numTestFailures = numTestFailures;		
+		this.numTestFailures = numTestFailures;
 	}	
 
+	public SuiteResult(int numTestPasses, int numTestFailures, int numCommandPasses,
+		int numCommandFailures, int numCommandErrors)
+	{
+		this.numTestPasses = numTestPasses;
+		this.numTestFailures = numTestFailures;
+		this.numCommandPasses = numCommandPasses;
+		this.numCommandFailures = numCommandFailures;
+		this.numCommandErrors = numCommandErrors;
+	}	
 	public int getNumTestPasses() {
 		return numTestPasses;
 	}
@@ -30,9 +43,24 @@
 		return numTestFailures;
 	}
 
+	public int numCommandPasses() {
+		return numCommandPasses;
+	}
+
+	public int numCommandFailures() {
+		return numCommandFailures;
+	}
+
+	public int numCommandErrors() {
+		return numCommandErrors;
+	}
+
 	public static SuiteResult parse(InputStream xmlReport) throws Exception {
 		int numTestPasses = 0;
 		int numTestFailures = 0;
+		int numCommandPasses = 0;
+		int numCommandFailures = 0;
+		int numCommandErrors = 0;
 		
 		BufferedReader buff = null;
 		try
@@ -41,6 +69,9 @@
 
 			numTestPasses = Integer.valueOf(readInfo(buff,"numTestPasses:")).intValue();
 			numTestFailures = Integer.valueOf(readInfo(buff,"numTestFailures:")).intValue();
+			numCommandPasses = Integer.valueOf(readInfo(buff,"numCommandPasses:")).intValue();
+			numCommandFailures = Integer.valueOf(readInfo(buff,"numCommandFailures:")).intValue();
+			numCommandErrors = Integer.valueOf(readInfo(buff,"numCommandErrors:")).intValue();
 			
 			buff.close();
 		}
@@ -52,7 +83,7 @@
 			}
 		}
 		
-        return new SuiteResult(numTestPasses, numTestFailures);
+        return new SuiteResult(numTestPasses, numTestFailures, numCommandPasses, numCommandFailures, numCommandErrors);
     }
 	
 	private static String readInfo(BufferedReader buff, String infoName) throws IOException
Index: SeleniumhqPublisher.java
===================================================================
--- SeleniumhqPublisher.java	(revision 32250)
+++ SeleniumhqPublisher.java	(working copy)
@@ -160,9 +160,12 @@
         listener.getLogger().println("  Test failures: " + action.getResult().getNumTestFailures());
         listener.getLogger().println("  Test totals  : " + action.getResult().getNumTestTotal());
 
-        if (action.getResult().getNumTestFailures() > 0)
+        if (action.getResult().numCommandFailures() > 0)
             build.setResult(Result.UNSTABLE);
 
+        if (action.getResult().numCommandErrors() > 0)
+            build.setResult(Result.FAILURE);
+
         return true;
     }
 
Index: TestResult.java
===================================================================
--- TestResult.java	(revision 32250)
+++ TestResult.java	(working copy)
@@ -51,6 +51,30 @@
 		return count;
 	}
 
+	public int numCommandPasses() {
+		int count = 0;
+		for (SuiteResult suite : suites) {
+			count += suite.numCommandPasses();
+		}
+		return count;
+	}
+
+	public int numCommandFailures() {
+		int count = 0;
+		for (SuiteResult suite : suites) {
+			count += suite.numCommandFailures();
+		}
+		return count;
+	}
+
+	public int numCommandErrors() {
+		int count = 0;
+		for (SuiteResult suite : suites) {
+			count += suite.numCommandErrors();
+		}
+		return count;
+	}
+
 	public int getNumTestTotal()
 	{
 		return getNumTestPasses() + getNumTestFailures();