diff --git a/.travis.yml b/.travis.yml
index eb7a752c3769f10a8f6d4361c1c4d1ca7975d522..fe473d6b24182e786283d8f91b01872d51c785db 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ matrix:
     - compiler: clang
       language: ruby
       rvm: ruby-1.9.3-p484
-      env: BINDINGS=ruby CC=clang
+      env: BINDINGS=ruby CC="clang --coverage"
     - compiler: gcc
       language: ruby
       rvm: ruby-2.0.0-p353
@@ -21,7 +21,7 @@ matrix:
     - compiler: clang
       language: ruby
       rvm: ruby-2.0.0-p353
-      env: BINDINGS=ruby CC=clang
+      env: BINDINGS=ruby CC="clang --coverage"
     - compiler: gcc
       language: ruby
       rvm: ruby-2.1.0
@@ -29,7 +29,7 @@ matrix:
     - compiler: clang
       language: ruby
       rvm: ruby-2.1.0
-      env: BINDINGS=ruby CC=clang
+      env: BINDINGS=ruby CC="clang --coverage"
     - compiler: gcc
       language: python
       python: "2.7"
@@ -37,7 +37,7 @@ matrix:
     - compiler: clang
       language: python
       python: "2.7"
-      env: BINDINGS=python CC=clang
+      env: BINDINGS=python CC="clang --coverage"
     - compiler: gcc
       language: perl
       perl: "5.18"
@@ -45,7 +45,7 @@ matrix:
     - compiler: clang
       language: perl
       perl: "5.18"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC="clang --coverage"
     - compiler: gcc
       language: perl
       perl: "5.14"
@@ -53,7 +53,7 @@ matrix:
     - compiler: clang
       language: perl
       perl: "5.14"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC="clang --coverage"
     - compiler: gcc
       language: perl
       perl: "5.10"
@@ -61,7 +61,7 @@ matrix:
     - compiler: clang
       language: perl
       perl: "5.10"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC="clang --coverage"
     - compiler: gcc
       language: php
       php: "5.5"
@@ -69,7 +69,7 @@ matrix:
     - compiler: clang
       language: php
       php: "5.5"
-      env: BINDINGS=php CC=clang
+      env: BINDINGS=php CC="clang --coverage"
     - compiler: gcc
       language: php
       php: "5.4"
@@ -77,19 +77,19 @@ matrix:
     - compiler: clang
       language: php
       php: "5.4"
-      env: BINDINGS=php CC=clang
+      env: BINDINGS=php CC="clang --coverage"
     - compiler: gcc
       language: dotnet
       env: BINDINGS=dotnet
     - compiler: clang
       language: dotnet
-      env: BINDINGS=dotnet CC=clang
+      env: BINDINGS=dotnet CC="clang --coverage"
     - compiler: gcc
       language: cpp
       env: BINDINGS=cpp
     - compiler: gcc
       language: cpp
-      env: BINDINGS=cpp CC=clang
+      env: BINDINGS=cpp CC="clang --coverage"
 before_install:
   - sudo apt-get update -qq
   - sudo apt-get install lcov
@@ -102,9 +102,9 @@ install: true
 before_script:
   - if [ "$BINDINGS" == "php" ]; then phpenv config-add src/bindings/php/hammer.ini; fi
 script: 
-  - scons bindings=$BINDINGS test --coverage
+  - scons bindings=$BINDINGS test --variant=debug --coverage
 after_success:
-  - lcov --capture --directory build/opt/src --output-file coverage.info
+  - if [ "$CC" == "clang --coverage" ]; then llvm-cov gcov -o coverage.info build/debug/src/test_suite.gcda; else lcov --capture --directory build/debug/src --output-file coverage.info; fi
   - coveralls-lcov coverage.info
 notifications:
   irc: 
diff --git a/SConstruct b/SConstruct
index b7549cd8d697e1afe7837437a3463e936dac7862..05596f32489e66dc0e7947c8f6832c560a3901fd 100644
--- a/SConstruct
+++ b/SConstruct
@@ -93,8 +93,7 @@ else:
 if GetOption("coverage"):
     env.Append(CFLAGS=["--coverage"],
                CXXFLAGS=["--coverage"],
-               LDFLAGS=["--coverage"],
-               LIBS=['gcov'])
+               LDFLAGS=["--coverage"])
 
 env["CC"] = os.getenv("CC") or env["CC"]
 env["CXX"] = os.getenv("CXX") or env["CXX"]