diff --git a/alib2/test-src/main.cpp b/alib2/test-src/main.cpp
index 6efb714736595efc3e8d6337af107a5631360a8a..1b3e03225779c209b81d8dfd664d46199dfaba7b 100644
--- a/alib2/test-src/main.cpp
+++ b/alib2/test-src/main.cpp
@@ -28,17 +28,22 @@ public:
   void endTest( Test *test );
 
   int getResult() const;
+
+  void printResults() const;
+
 private:
   TestProgressListener( const TestProgressListener &copy );
 
   void operator =( const TestProgressListener &copy );
 
 private:
-  int m_Result;
+  int m_Failures;
+  int m_Tests;
+  int m_Assertions;
   bool m_lastTestFailed;
 };
 
-TestProgressListener::TestProgressListener() : m_Result( 0 ), m_lastTestFailed( false )
+TestProgressListener::TestProgressListener() : m_Failures( 0 ), m_Tests(0), m_Assertions(0), m_lastTestFailed( false )
 {
 }
 
@@ -52,6 +57,7 @@ void TestProgressListener::startTest( Test * test )
 	stdCOut().flush();
 
 	m_lastTestFailed = false;
+	m_Tests++;
 }
 
 void TestProgressListener::addFailure( const TestFailure &failure )
@@ -60,7 +66,7 @@ void TestProgressListener::addFailure( const TestFailure &failure )
 	stdCOut() << "Exception " << failure.thrownException()->message().details();
 
 	m_lastTestFailed = true;
-	m_Result++;
+	if(failure.isError()) m_Failures++; else m_Assertions++;
 }
 
 void TestProgressListener::endTest( Test * test)
@@ -76,7 +82,11 @@ void TestProgressListener::endTest( Test * test)
 }
 
 int TestProgressListener::getResult() const {
-	return m_Result;
+	return m_Failures + m_Assertions;
+}
+
+void TestProgressListener::printResults() const {
+	stdCOut() << "Overal result: Tests: " << m_Tests << " Assertions: " << m_Assertions << " Failures: " << m_Failures << "\n";
 }
 
 CPPUNIT_NS_END
@@ -104,5 +114,7 @@ int main(int , char*[])
   // Run the tests.
   runner.run( controller );
 
+  progressListener.printResults();
+
   return progressListener.getResult();
 }