diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+## 0.4.0.13 (2017-04-19)
+
+ * Support aeson 1.2.
+
+ * Down throw ThreadKilled exception back to the thread that killed us.
+
 ## 0.4.0.11 (2016-09-14)
 
  * Support aeson 1.0.
diff --git a/System/Remote/Monitoring.hs b/System/Remote/Monitoring.hs
--- a/System/Remote/Monitoring.hs
+++ b/System/Remote/Monitoring.hs
@@ -44,6 +44,7 @@
     ) where
 
 import Control.Concurrent (ThreadId, myThreadId, throwTo)
+import Control.Exception (AsyncException(ThreadKilled), fromException)
 import qualified Data.ByteString as S
 import Data.Int (Int64)
 import qualified Data.Text as T
@@ -234,8 +235,10 @@
     me <- myThreadId
     tid <- withSocketsDo $ forkFinally (startServer store host port) $ \ r ->
         case r of
-            Left e  -> throwTo me e
             Right _ -> return ()
+            Left e  -> case fromException e of
+                Just ThreadKilled -> return ()
+                _                 -> throwTo me e
     return $! Server tid store
   where
     getTimeMs :: IO Int64
diff --git a/ekg.cabal b/ekg.cabal
--- a/ekg.cabal
+++ b/ekg.cabal
@@ -1,5 +1,5 @@
 name:                ekg
-version:             0.4.0.12
+version:             0.4.0.13
 synopsis:            Remote monitoring of processes
 description:
   This library lets you remotely monitor a running process over HTTP.
@@ -38,7 +38,7 @@
     System.Remote.Snap
 
   build-depends:
-    aeson < 1.2,
+    aeson < 1.3,
     base >= 4.5 && < 4.10,
     bytestring < 1.0,
     ekg-core >= 0.1 && < 0.2,
