diff --git a/.gitignore b/.gitignore
index 02b0a98c53..fdd50b2454 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,6 @@ CTestTestfile.cmake
 cmake_install.cmake
 Testing
 Coverage
+*.gcno
+*.gcda
+library/polarssl.info
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0be112edd6..f0df878255 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,12 +77,13 @@ ADD_CUSTOM_TARGET(test-ref-config
     )
 
 ADD_CUSTOM_TARGET(lcov
-    COMMAND geninfo *.gcda
-    COMMAND genhtml -o ../../../Coverage *.info
+    COMMAND lcov --capture --directory . -o polarssl.info
+    COMMAND genhtml --title PolarSSL --legend --no-branch-coverage -o ../../../Coverage polarssl.info
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/library/CMakeFiles/polarssl.dir
     )
 
 ADD_CUSTOM_TARGET(memcheck
+    COMMAND rm -rf Coverage
     COMMAND ctest -O memcheck.log -D ExperimentalMemCheck
     COMMAND tail -n1 memcheck.log | grep 'Memory checking results:' > /dev/null
     COMMAND rm -f memcheck.log
diff --git a/Makefile b/Makefile
index 2ca3cf54eb..f48fd6628b 100644
--- a/Makefile
+++ b/Makefile
@@ -58,8 +58,9 @@ test-ref-configs:
 
 lcov:
 	rm -rf Coverage
-	( cd library && geninfo *.gcda )
-	( cd library && genhtml -o ../Coverage *.info )
+	( cd library && lcov --capture --directory . -o polarssl.info )
+	( cd library && genhtml --title PolarSSL --legend --no-branch-coverage \
+	    -o ../Coverage polarssl.info )
 
 apidoc:
 	mkdir -p apidoc