diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+[0.8.1](https://github.com/guillaume-nargeot/hpc-coveralls/issues?q=milestone:v0.8.1+is:closed)
+-----
+* Include additional test modules in package generated by sdist (issue #34)
+
 [0.8.0](https://github.com/guillaume-nargeot/hpc-coveralls/issues?q=milestone:v0.8.0+is:closed)
 -----
 * Introduce retry policy to http requests (issue #31)
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 hpc-coveralls
 =============
 
-[![Build Status](http://img.shields.io/travis/guillaume-nargeot/hpc-coveralls/master.svg)](https://travis-ci.org/guillaume-nargeot/hpc-coveralls) [![Gitter chat](http://img.shields.io/badge/gitter-chat--room-brightgreen.svg)](https://gitter.im/guillaume-nargeot/hpc-coveralls) [![BSD3 License](http://img.shields.io/badge/license-BSD3-brightgreen.svg)](https://tldrlegal.com/license/bsd-3-clause-license-%28revised%29) [![v0.8.0 on Hackage](http://img.shields.io/badge/hackage-0.8.0-brightgreen.svg)](http://hackage.haskell.org/package/hpc-coveralls-0.8.0) [![Stories in Ready](https://badge.waffle.io/guillaume-nargeot/hpc-coveralls.png?label=ready&title=Ready)](https://waffle.io/guillaume-nargeot/hpc-coveralls)
+[![Build Status](http://img.shields.io/travis/guillaume-nargeot/hpc-coveralls/master.svg)](https://travis-ci.org/guillaume-nargeot/hpc-coveralls) [![Gitter chat](http://img.shields.io/badge/gitter-chat--room-brightgreen.svg)](https://gitter.im/guillaume-nargeot/hpc-coveralls) [![BSD3 License](http://img.shields.io/badge/license-BSD3-brightgreen.svg)](https://tldrlegal.com/license/bsd-3-clause-license-%28revised%29) [![Version on Hackage](https://img.shields.io/hackage/v/hpc-coveralls.svg)](http://hackage.haskell.org/package/hpc-coveralls) [![Stories in Ready](https://badge.waffle.io/guillaume-nargeot/hpc-coveralls.png?label=ready&title=Ready)](https://waffle.io/guillaume-nargeot/hpc-coveralls)
 
 hpc-coveralls converts and sends Haskell projects hpc code coverage to [coverall.io](http://coveralls.io/).
 
@@ -15,6 +15,8 @@
 
 Below is the simplest example of configuration for your project `.travis.yml`:
 ```yaml
+language: haskell
+ghc: 7.8
 script:
   - cabal configure --enable-tests --enable-library-coverage && cabal build && cabal test
 after_script:
diff --git a/hpc-coveralls.cabal b/hpc-coveralls.cabal
--- a/hpc-coveralls.cabal
+++ b/hpc-coveralls.cabal
@@ -1,5 +1,5 @@
 name:           hpc-coveralls
-version:        0.8.0
+version:        0.8.1
 synopsis:       Coveralls.io support for Haskell.
 description:
   This utility converts and sends Haskell projects hpc code coverage to
@@ -23,7 +23,7 @@
 license-file:   LICENSE
 author:         Guillaume Nargeot
 maintainer:     Guillaume Nargeot <guillaume+hackage@nargeot.com>
-copyright:      (c) 2014 Guillaume Nargeot
+copyright:      (c) 2014-2015 Guillaume Nargeot
 category:       Control
 build-type:     Simple
 stability:      experimental
@@ -95,6 +95,9 @@
   hs-source-dirs: test
   type:           exitcode-stdio-1.0
   main-is:        TestAll.hs
+  other-modules:
+    TestHpcCoverallsLix,
+    TestHpcCoverallsUtil
   build-depends:
     base,
     hpc-coveralls,
diff --git a/src/HpcCoverallsCmdLine.hs b/src/HpcCoverallsCmdLine.hs
--- a/src/HpcCoverallsCmdLine.hs
+++ b/src/HpcCoverallsCmdLine.hs
@@ -25,6 +25,6 @@
     , dontSend      = False             &= explicit               &= name "dont-send"      &= help "Do not send the report to coveralls.io"
     , coverageMode  = AllowPartialLines &= explicit &= typ "MODE" &= name "coverage-mode"  &= help "Coverage conversion mode: AllowPartialLines (default), StrictlyFullLines"
     , testSuites    = []                &= typ "TEST-SUITE" &= args
-    } &= summary ("hpc-coveralls-" ++ versionString version ++ ", (C) Guillaume Nargeot 2014")
+    } &= summary ("hpc-coveralls-" ++ versionString version ++ ", (C) Guillaume Nargeot 2014-2015")
       &= program "hpc-coveralls"
     where versionString = intercalate "." . map show . versionBranch
diff --git a/src/Trace/Hpc/Coveralls.hs b/src/Trace/Hpc/Coveralls.hs
--- a/src/Trace/Hpc/Coveralls.hs
+++ b/src/Trace/Hpc/Coveralls.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module:      Trace.Hpc.Coveralls
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/src/Trace/Hpc/Coveralls/Curl.hs b/src/Trace/Hpc/Coveralls/Curl.hs
--- a/src/Trace/Hpc/Coveralls/Curl.hs
+++ b/src/Trace/Hpc/Coveralls/Curl.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module:      Trace.Hpc.Coveralls.Curl
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/src/Trace/Hpc/Coveralls/Lix.hs b/src/Trace/Hpc/Coveralls/Lix.hs
--- a/src/Trace/Hpc/Coveralls/Lix.hs
+++ b/src/Trace/Hpc/Coveralls/Lix.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module:      Trace.Hpc.Coveralls.Lix
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/src/Trace/Hpc/Coveralls/Paths.hs b/src/Trace/Hpc/Coveralls/Paths.hs
--- a/src/Trace/Hpc/Coveralls/Paths.hs
+++ b/src/Trace/Hpc/Coveralls/Paths.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module:      Trace.Hpc.Coveralls.Paths
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/src/Trace/Hpc/Coveralls/Types.hs b/src/Trace/Hpc/Coveralls/Types.hs
--- a/src/Trace/Hpc/Coveralls/Types.hs
+++ b/src/Trace/Hpc/Coveralls/Types.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module:      Trace.Hpc.Coveralls.Types
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/src/Trace/Hpc/Coveralls/Util.hs b/src/Trace/Hpc/Coveralls/Util.hs
--- a/src/Trace/Hpc/Coveralls/Util.hs
+++ b/src/Trace/Hpc/Coveralls/Util.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module:      Trace.Hpc.Coveralls.Util
--- Copyright:   (c) 2014 Guillaume Nargeot
+-- Copyright:   (c) 2014-2015 Guillaume Nargeot
 -- License:     BSD3
 -- Maintainer:  Guillaume Nargeot <guillaume+hackage@nargeot.com>
 -- Stability:   experimental
diff --git a/test/TestHpcCoverallsLix.hs b/test/TestHpcCoverallsLix.hs
new file mode 100644
--- /dev/null
+++ b/test/TestHpcCoverallsLix.hs
@@ -0,0 +1,22 @@
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-type-defaults #-}
+
+module TestHpcCoverallsLix where
+
+import Test.HUnit
+import Trace.Hpc.Coveralls.Lix
+import Trace.Hpc.Coveralls.Types
+
+testToHit = "toHit" ~: [
+    Irrelevant @=? toHit [],
+    None       @=? toHit [False],
+    None       @=? toHit [False, False],
+    Partial    @=? toHit [False, True],
+    Partial    @=? toHit [True, False],
+    Partial    @=? toHit [False, False, True],
+    Partial    @=? toHit [False, True, False],
+    Partial    @=? toHit [True, False, False],
+    Full       @=? toHit [True],
+    Full       @=? toHit [True, True]]
+
+testLix = "Lix" ~: [testToHit]
diff --git a/test/TestHpcCoverallsUtil.hs b/test/TestHpcCoverallsUtil.hs
new file mode 100644
--- /dev/null
+++ b/test/TestHpcCoverallsUtil.hs
@@ -0,0 +1,87 @@
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-type-defaults #-}
+
+module TestHpcCoverallsUtil where
+
+import Test.HUnit
+import Trace.Hpc.Coveralls.Util
+
+testMapFirst = "mapFirst" ~: [
+    mapFirst (+ 1) [] @?= [],
+    mapFirst (+ 1) [2] @?= [3],
+    mapFirst (+ 1) [2, 3] @?= [3, 3],
+    mapFirst (+ 1) [2, 3, 5] @?= [3, 3, 5]]
+
+testMapLast = "mapLast" ~: [
+    mapLast (+ 1) [] @?= [],
+    mapLast (+ 1) [2] @?= [3],
+    mapLast (+ 1) [2, 3] @?= [2, 4],
+    mapLast (+ 1) [2, 3, 5] @?= [2, 3, 6]]
+
+testSubSeq = "subSeq" ~: [
+    subSeq 0 0 [] @?= ([] :: [Int]),
+    subSeq 0 0 [2] @?= [],
+    subSeq 0 1 [2] @?= [2],
+    subSeq 0 2 [2] @?= [2],
+    subSeq 1 1 [2] @?= [],
+    subSeq 1 2 [2] @?= [],
+    subSeq 0 0 [2, 3] @?= [],
+    subSeq 0 1 [2, 3] @?= [2],
+    subSeq 0 2 [2, 3] @?= [2, 3],
+    subSeq 0 3 [2, 3] @?= [2, 3],
+    subSeq 1 1 [2, 3] @?= [],
+    subSeq 1 2 [2, 3] @?= [3],
+    subSeq 1 3 [2, 3] @?= [3],
+    subSeq 0 2 [2, 3] @?= [2, 3],
+    subSeq 1 3 [2, 3, 5] @?= [3, 5],
+    subSeq 0 3 [2, 3, 5] @?= [2, 3, 5]]
+
+testSubSubSeq = "subSubSeq" ~: [
+    subSubSeq 0 0 [[]] @?= ([[]]  :: [[Int]]),
+    subSubSeq 0 0 [[2]] @?= [[]],
+    subSubSeq 0 1 [[2]] @?= [[2]],
+    subSubSeq 0 0 [[2, 3]] @?= [[]],
+    subSubSeq 0 1 [[2, 3]] @?= [[2]],
+    subSubSeq 0 2 [[2, 3]] @?= [[2, 3]],
+    subSubSeq 1 1 [[2, 3]] @?= [[]],
+    subSubSeq 1 2 [[2, 3]] @?= [[3]],
+    subSubSeq 1 3 [[2, 3]] @?= [[3]],
+    subSubSeq 0 2 [[2, 3]] @?= [[2, 3]],
+    subSubSeq 1 3 [[2, 3, 5]] @?= [[3, 5]],
+    subSubSeq 0 3 [[2, 3, 5]] @?= [[2, 3, 5]],
+    subSubSeq 0 0 [[2, 3], [5, 7]] @?= [[2, 3], []],
+    subSubSeq 0 1 [[2, 3], [5, 7]] @?= [[2, 3], [5]],
+    subSubSeq 0 2 [[2, 3], [5, 7]] @?= [[2, 3], [5, 7]],
+    subSubSeq 1 0 [[2, 3], [5, 7]] @?= [[3], []],
+    subSubSeq 1 1 [[2, 3], [5, 7]] @?= [[3], [5]],
+    subSubSeq 1 2 [[2, 3], [5, 7]] @?= [[3], [5, 7]],
+    subSubSeq 2 0 [[2, 3], [5, 7]] @?= [[], []],
+    subSubSeq 2 1 [[2, 3], [5, 7]] @?= [[], [5]],
+    subSubSeq 2 2 [[2, 3], [5, 7]] @?= [[], [5, 7]]]
+
+testGroupByIndex = "groupByIndex" ~: [
+    groupByIndex 0 [(0, 2)] @?= [],
+    groupByIndex 1 [(0, 2)] @?= [[2]],
+    groupByIndex 2 [(0, 2)] @?= [[2], []],
+    groupByIndex 0 [(1, 2)] @?= [],
+    groupByIndex 1 [(1, 2)] @?= [[]],
+    groupByIndex 2 [(1, 2)] @?= [[], [2]],
+    groupByIndex 3 [(1, 2)] @?= [[], [2], []],
+    groupByIndex 0 [(0, 2), (0, 3)] @?= [],
+    groupByIndex 1 [(0, 2), (0, 3)] @?= [[3, 2]],
+    groupByIndex 1 [(0, 2), (1, 3)] @?= [[2]],
+    groupByIndex 1 [(1, 2), (1, 3)] @?= [[]],
+    groupByIndex 2 [(0, 2), (0, 3)] @?= [[3, 2], []],
+    groupByIndex 2 [(0, 2), (1, 3)] @?= [[2], [3]],
+    groupByIndex 2 [(1, 2), (1, 3)] @?= [[], [3, 2]],
+    groupByIndex 3 [(0, 2), (0, 3)] @?= [[3, 2], [], []],
+    groupByIndex 3 [(0, 2), (1, 3)] @?= [[2], [3], []],
+    groupByIndex 3 [(1, 2), (1, 3)] @?= [[], [3, 2], []],
+    groupByIndex 5 [(0, 2), (2, 5), (2, 3), (4, 13), (4, 11), (4, 7)] @?= [[2], [], [3, 5], [], [7, 11, 13]]]
+
+testUtil = "Util" ~: [
+    testMapFirst,
+    testMapLast,
+    testSubSeq,
+    testSubSubSeq,
+    testGroupByIndex]
