diff --git a/.appveyor.yml b/.appveyor.yml
index 81705c9b9cd1951fe7121d0b7c3d3ae9f5689427..46361ef0735ec30f11fbdfc33b40ae068f9d2b95 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -41,5 +41,5 @@ after_test:
   # Install & run codecov
   - "%PYTHON%\\python -m pip install codecov"
   - "SET PATH=%PYTHON%\\Scripts\\;%PATH%"
-  - "coverage combine ./ ./scapy/tools/"
+  - "coverage combine ./"
   - codecov
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000000000000000000000000000000000000..d992f26c57116dab5b20d18a42bf83a672d2e38f
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,8 @@
+[run]
+omit =
+    # Python specific path
+    /usr/local/lib/python2.7/*
+    # Scapy specific paths
+    test/*
+    bin/*
+    scapy/tools/*
diff --git a/.travis.yml b/.travis.yml
index a29479395116c2d68a7a279f6c64fe175bc98cce..dcc023e7f806cf986a1271037abada85044c763f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,5 +53,5 @@ script: bash .travis/test.sh
 after_success:
     - if [ "$SCAPY_COVERAGE" = "yes" ]; then pip install codecov; fi
     # With UTScapy, the coverage dot file is located in the test directory
-    - if [ "$SCAPY_COVERAGE" = "yes" ]; then cd test; coverage combine; fi
+    - if [ "$SCAPY_COVERAGE" = "yes" ]; then coverage combine ./test; fi
     - if [ "$SCAPY_COVERAGE" = "yes" ]; then codecov; fi