diff --git a/distributed-process-client-server.cabal b/distributed-process-client-server.cabal
--- a/distributed-process-client-server.cabal
+++ b/distributed-process-client-server.cabal
@@ -1,5 +1,5 @@
 name:           distributed-process-client-server
-version:        0.1.2
+version:        0.1.3.1
 cabal-version:  >=1.8
 build-type:     Simple
 license:        BSD3
@@ -7,7 +7,7 @@
 stability:      experimental
 Copyright:      Tim Watson 2012 - 2013
 Author:         Tim Watson
-Maintainer:     watson.timothy@gmail.com
+Maintainer:     Facundo Domínguez <facundo.dominguez@tweag.io>
 Stability:      experimental
 Homepage:       http://github.com/haskell-distributed/distributed-process-client-server
 Bug-Reports:    http://github.com/haskell-distributed/distributed-process-client-server/issues
@@ -24,10 +24,6 @@
   type:      git
   location:  https://github.com/haskell-distributed/distributed-process-client-server
 
-flag perf
-  description: Build with profiling enabled
-  default: False
-
 library
   build-depends:
                    base >= 4.4 && < 5,
@@ -36,14 +32,14 @@
                    distributed-process-extras >= 0.2.0 && < 0.3,
                    distributed-process-async >= 0.2.1 && < 0.3,
                    binary >= 0.6.3.0 && < 0.8,
-                   deepseq >= 1.3.0.1 && < 1.4,
+                   deepseq >= 1.3.0.1 && < 1.5,
                    mtl,
                    containers >= 0.4 && < 0.6,
                    hashable >= 1.2.0.5 && < 1.3,
                    unordered-containers >= 0.2.3.0 && < 0.3,
                    fingertree < 0.2,
                    stm >= 2.4 && < 2.5,
-                   time > 1.4 && < 1.5,
+                   time > 1.4 && < 1.6,
                    transformers
   if impl(ghc <= 7.5)
     Build-Depends:   template-haskell == 2.7.0.0,
@@ -81,7 +77,7 @@
                    fingertree < 0.2,
                    network-transport-tcp >= 0.4 && < 0.5,
                    binary >= 0.6.3.0 && < 0.8,
-                   deepseq >= 1.3.0.1 && < 1.4,
+                   deepseq >= 1.3.0.1 && < 1.5,
                    network >= 2.3 && < 2.7,
                    HUnit >= 1.2 && < 2,
                    stm >= 2.3 && < 2.5,
@@ -113,7 +109,7 @@
                    fingertree < 0.2,
                    network-transport-tcp >= 0.4 && < 0.5,
                    binary >= 0.6.3.0 && < 0.8,
-                   deepseq >= 1.3.0.1 && < 1.4,
+                   deepseq >= 1.3.0.1 && < 1.5,
                    network >= 2.3 && < 2.7,
                    HUnit >= 1.2 && < 2,
                    stm >= 2.3 && < 2.5,
diff --git a/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs b/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
--- a/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
+++ b/src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs
@@ -64,7 +64,7 @@
   ( resolveOrDie
   )
 import Control.Distributed.Process.Extras.Time
-import Control.DeepSeq (NFData)
+import Control.DeepSeq (NFData(..))
 import Data.Binary hiding (decode)
 import Data.Typeable (Typeable)
 
@@ -81,7 +81,7 @@
 newtype CallRef a = CallRef { unCaller :: (Recipient, CallId) }
   deriving (Eq, Show, Typeable, Generic)
 instance Serializable a => Binary (CallRef a) where
-instance NFData a => NFData (CallRef a) where
+instance NFData a => NFData (CallRef a) where rnf (CallRef x) = rnf x `seq` ()
 
 makeRef :: forall a . (Serializable a) => Recipient -> CallId -> CallRef a
 makeRef r c = CallRef (r, c)
@@ -101,6 +101,9 @@
 
 instance (Serializable a, Serializable b) => Binary (Message a b) where
 instance (NFSerializable a, NFSerializable b) => NFData (Message a b) where
+  rnf (CastMessage a) = rnf a `seq` ()
+  rnf (CallMessage a b) = rnf a `seq` rnf b `seq` ()
+  rnf (ChanMessage a b) = rnf a `seq` rnf b `seq` ()
 deriving instance (Eq a, Eq b) => Eq (Message a b)
 deriving instance (Show a, Show b) => Show (Message a b)
 
@@ -108,7 +111,8 @@
   deriving (Typeable, Generic)
 
 instance Serializable a => Binary (CallResponse a)
-instance NFSerializable a => NFData (CallResponse a)
+instance NFSerializable a => NFData (CallResponse a) where
+  rnf (CallResponse a c) = rnf a `seq` rnf c `seq` ()
 deriving instance Eq a => Eq (CallResponse a)
 deriving instance Show a => Show (CallResponse a)
 
