diff --git a/cake/tests/lib/reporter/cake_html_reporter.php b/cake/tests/lib/reporter/cake_html_reporter.php
index 19ea25da2..69b28eb6d 100755
--- a/cake/tests/lib/reporter/cake_html_reporter.php
+++ b/cake/tests/lib/reporter/cake_html_reporter.php
@@ -26,7 +26,7 @@ include_once dirname(__FILE__) . DS . 'cake_base_reporter.php';
  * @package cake
  * @subpackage cake.tests.lib
  */
-class CakeHtmlReporter extends CakeBaseReporter {
+class CakeHtmlReporter extends CakeBaseReporter implements PHPUnit_Framework_TestListener{
 
 /**
  * Paints the top of the web page setting the
@@ -39,7 +39,6 @@ class CakeHtmlReporter extends CakeBaseReporter {
 		$this->sendNoCacheHeaders();
 		$this->paintDocumentStart();
 		$this->paintTestMenu();
-		echo "<h2>$testName</h2>\n";
 		echo "<ul class='tests'>\n";
 	}
 
@@ -155,20 +154,20 @@ class CakeHtmlReporter extends CakeBaseReporter {
  * @param string $test_name Name class of test.
  * @return void
  */
-	public function paintFooter($test_name) {
-		$colour = ($this->getFailCount() + $this->getExceptionCount() > 0 ? "red" : "green");
+	public function paintFooter($result) {
+		$colour = ($result->failureCount()  + $result->errorCount() > 0 ? "red" : "green");
 		echo "</ul>\n";
 		echo "<div style=\"";
 		echo "padding: 8px; margin: 1em 0; background-color: $colour; color: white;";
 		echo "\">";
-		echo $this->getTestCaseProgress() . "/" . $this->getTestCaseCount();
+		echo $result->count() . "/" . $result->count() - $result->skippedCount();
 		echo " test cases complete:\n";
-		echo "<strong>" . $this->getPassCount() . "</strong> passes, ";
-		echo "<strong>" . $this->getFailCount() . "</strong> fails and ";
-		echo "<strong>" . $this->getExceptionCount() . "</strong> exceptions.";
+		echo "<strong>" . count($result->passed()) . "</strong> passes, ";
+		echo "<strong>" . $result->failureCount() . "</strong> fails and ";
+		echo "<strong>" . $result->errorCount() . "</strong> exceptions.";
 		echo "</div>\n";
 		echo '<div style="padding:0 0 5px;">';
-		echo '<p><strong>Time taken by tests (in seconds):</strong> ' . $this->_timeDuration . '</p>';
+		echo '<p><strong>Time taken by tests (in seconds):</strong> ' . $result->time() . '</p>';
 		if (function_exists('memory_get_peak_usage')) {
 			echo '<p><strong>Peak memory use: (in bytes):</strong> ' . number_format(memory_get_peak_usage()) . '</p>';
 		}
@@ -247,18 +246,24 @@ class CakeHtmlReporter extends CakeBaseReporter {
  * trail of the nesting test suites below the
  * top level test.
  *
- * @param string $message Failure message displayed in
+ * @param PHPUnit_Framework_AssertionFailedError $message Failure object displayed in
  *   the context of the other tests.
  * @return void
  */
 	public function paintFail($message) {
-		parent::paintFail($message);
+		$context = $message->getTrace();
+		$realContext = $context[3];
+		$context = $context[2];
+
 		echo "<li class='fail'>\n";
 		echo "<span>Failed</span>";
-		echo "<div class='msg'>" . $this->_htmlEntities($message) . "</div>\n";
-		$breadcrumb = $this->getTestList();
-		array_shift($breadcrumb);
-		echo "<div>" . implode(" -&gt; ", $breadcrumb) . "</div>\n";
+		echo "<div class='msg'>" . $this->_htmlEntities($message->getDescription()) . "</div>\n";
+		echo "<div class='msg'>" . sprintf(__('File: %s'), $context['file']) . "</div>\n";
+		echo "<div class='msg'>" . sprintf(__('Method: %s'), $realContext['function']) . "</div>\n";
+		echo "<div class='msg'>" . sprintf(__('Line: %s'), $context['line']) . "</div>\n";
+		//$breadcrumb = $this->getTestList();
+		//array_shift($breadcrumb);
+		//echo "<div>" . implode(" -&gt; ", $breadcrumb) . "</div>\n";
 		echo "</li>\n";
 	}
 
@@ -291,7 +296,6 @@ class CakeHtmlReporter extends CakeBaseReporter {
  * @return void
  */
 	public function paintError($message) {
-		parent::paintError($message);
 		echo "<li class='error'>\n";
 		echo "<span>Error</span>";
 		echo "<div class='msg'>" . $this->_htmlEntities($message) . "</div>\n";
@@ -355,5 +359,107 @@ class CakeHtmlReporter extends CakeBaseReporter {
 	protected function _htmlEntities($message) {
 		return htmlentities($message, ENT_COMPAT, $this->_characterSet);
 	}
+
+	public function paintResult(PHPUnit_Framework_TestResult $result) {
+
+		/*if ($result->errorCount() > 0) {
+			$this->printErrors($result);
+		}
+
+		if ($result->failureCount() > 0) {
+			$this->printFailures($result);
+		}
+		
+		if ($result->skippedCount() > 0) {
+			 $this->printIncompletes($result);
+		}
+
+		if ($result->skippedCount() > 0) {
+			$this->printSkipped($result);
+		}*/
+
+		$this->paintFooter($result);
+	}
+
+/**
+* An error occurred.
+*
+* @param  PHPUnit_Framework_Test $test
+* @param  Exception              $e
+* @param  float                  $time
+*/
+	public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) {
+		
+	}
+
+/**
+* A failure occurred.
+*
+* @param  PHPUnit_Framework_Test                 $test
+* @param  PHPUnit_Framework_AssertionFailedError $e
+* @param  float                                  $time
+*/
+	public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) {
+		$this->paintFail($e);
+	}
+
+/**
+* Incomplete test.
+*
+* @param  PHPUnit_Framework_Test $test
+* @param  Exception              $e
+* @param  float                  $time
+*/
+	public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) {
+
+	}
+
+/**
+* Skipped test.
+*
+* @param  PHPUnit_Framework_Test $test
+* @param  Exception              $e
+* @param  float                  $time
+* @since  Method available since Release 3.0.0
+*/
+	public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) {
+		
+	}
+
+/**
+ * A test suite started.
+ *
+ * @param  PHPUnit_Framework_TestSuite $suite
+ * @since  Method available since Release 2.2.0
+ */
+	public function startTestSuite(PHPUnit_Framework_TestSuite $suite) {
+		echo '<h2>' . sprintf(__('Running  %s'), $suite->getName()) . '</h2>';
+	}
+
+/**
+ * A test suite ended.
+ *
+ * @param  PHPUnit_Framework_TestSuite $suite
+ * @since  Method available since Release 2.2.0
+ */
+	public function endTestSuite(PHPUnit_Framework_TestSuite $suite) {
+	}
+
+/**
+ * A test started.
+ *
+ * @param  PHPUnit_Framework_Test $test
+ */
+	public function startTest(PHPUnit_Framework_Test $test) {
+	}
+
+/**
+ * A test ended.
+ *
+ * @param  PHPUnit_Framework_Test $test
+ * @param  float                  $time
+ */
+	public function endTest(PHPUnit_Framework_Test $test, $time) {
+	}
 }
 ?>
\ No newline at end of file