diff --git a/Deadpan-DDP.cabal b/Deadpan-DDP.cabal
--- a/Deadpan-DDP.cabal
+++ b/Deadpan-DDP.cabal
@@ -1,5 +1,5 @@
 name:                Deadpan-DDP
-version:             0.9.3.0
+version:             0.9.4.0
 synopsis:            Write clients for Meteor's DDP Protocol
 description:         The Deadpan-DDP project includes a debugging-tool, as well as a general purpose library.
                      .
@@ -71,5 +71,5 @@
   type:                exitcode-stdio-1.0
   ghc-options:         -threaded
   main-is:             test/DocTestTests.hs
-  build-depends:       base, doctest >= 0.8, QuickCheck
+  build-depends:       base, doctest >= 0.8, QuickCheck, filemanip
   default-language:    Haskell2010
diff --git a/src/Data/EJson.hs b/src/Data/EJson.hs
--- a/src/Data/EJson.hs
+++ b/src/Data/EJson.hs
@@ -31,6 +31,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE NoMonomorphismRestriction #-}
+{-# LANGUAGE FlexibleContexts #-}
 
 module Data.EJson (
 
@@ -67,9 +68,8 @@
 
 import Data.EJson.EJson       as Exports
 import Data.EJson.EJson2Value as Exports
-import Data.Monoid            as Exports
 import Control.Lens           as Exports
-import Control.Monad.State (execState)
+import Control.Monad.State (execState, MonadState())
 import Data.Text           (Text())
 import Data.Aeson          (decode)
 import Data.EJson.Aeson()
@@ -196,6 +196,7 @@
 simpleMerge :: EJsonValue -> EJsonValue -> EJsonValue
 simpleMerge modifications = execState $ traverseOf_ _EJObject (mapM_ setPair . HM.toList) modifications
   where
+  setPair :: MonadState EJsonValue m => (Text, EJsonValue) -> m ()
   setPair (k,v) = _EJObjectKey k .= Just v
 
 -- | A variatnt of modifyInPath that leaves the EJsonValue unchanged if the update is not sensible.
diff --git a/src/Data/EJson/EJson.hs b/src/Data/EJson/EJson.hs
--- a/src/Data/EJson/EJson.hs
+++ b/src/Data/EJson/EJson.hs
@@ -55,7 +55,6 @@
              , _EJNull
    ) where
 
-import Data.Monoid
 import Control.Monad
 import Data.Aeson
 import Data.Scientific
@@ -68,7 +67,6 @@
 import Data.Maybe
 import Data.String
 import Control.Lens
-import Control.Applicative
 
 import qualified Data.Vector
 import qualified Data.HashMap.Strict as HM
diff --git a/src/Web/DDP/Deadpan/Callbacks.hs b/src/Web/DDP/Deadpan/Callbacks.hs
--- a/src/Web/DDP/Deadpan/Callbacks.hs
+++ b/src/Web/DDP/Deadpan/Callbacks.hs
@@ -18,6 +18,7 @@
 import Web.DDP.Deadpan.DSL
 import Control.Concurrent.MVar
 import Control.Monad.State
+import Data.Monoid
 
 -- Old Stuff...
 
diff --git a/src/Web/DDP/Deadpan/Websockets.hs b/src/Web/DDP/Deadpan/Websockets.hs
--- a/src/Web/DDP/Deadpan/Websockets.hs
+++ b/src/Web/DDP/Deadpan/Websockets.hs
@@ -48,6 +48,7 @@
                 return (domain, port, path)
 
 -- | prop> prop_getURI_full
+-- | prop> prop_getURI_missingPort
 prop_getURI_full, prop_getURI_missingPort :: Bool
 prop_getURI_full        = getURI "http://localhost:1234/testing" == Right ("localhost", 1234, "/testing")
 prop_getURI_missingPort = getURI "http://localhost/testing"      == Right ("localhost", 80,   "/testing")
diff --git a/test/DocTestTests.hs b/test/DocTestTests.hs
--- a/test/DocTestTests.hs
+++ b/test/DocTestTests.hs
@@ -2,10 +2,9 @@
 module Main where
 
 import Test.DocTest
+import System.FilePath.Glob
 
-main = doctest [ "-isrc"
-               , "src/Web/DDP/Deadpan.hs"
-               , "src/Data/EJson.hs"
-               , "src/Data/EJson/Props.hs"
-               , "src/Web/DDP/Deadpan/Websockets.hs"
-               ]
+main :: IO ()
+main = do
+  sources <- namesMatching "src/**/*.hs"
+  doctest $ "-isrc" : sources
