diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for sensu-run
 
+## 0.6.1 -- 2018-12-13
+
+* Fix the broken --timeout option
+* Add support for GHC 8.6
+
 ## 0.6.0.3 -- 2018-11-06
 
 * Relax upper version bound for base
diff --git a/sensu-run.cabal b/sensu-run.cabal
--- a/sensu-run.cabal
+++ b/sensu-run.cabal
@@ -1,5 +1,5 @@
 name: sensu-run
-version: 0.6.0.3
+version: 0.6.1
 synopsis: A tool to send command execution results to Sensu
 description:
   @sensu-run@ is a command line tool to send command execution results to Sensu
@@ -7,7 +7,7 @@
 license: BSD3
 license-file: LICENSE
 author: Mitsutoshi Aoe
-maintainer: maoe@foldr.in
+maintainer: me@maoe.name
 copyright: Copyright (C) 2016-2018 Mitsutoshi Aoe
 homepage: https://github.com/maoe/sensu-run#readme
 bug-reports: https://github.com/maoe/sensu-run/issues
@@ -20,7 +20,8 @@
 tested-with:
   GHC == 8.0.2
   GHC == 8.2.2
-  GHC == 8.4.3
+  GHC == 8.4.4
+  GHC == 8.6.3
 
 executable sensu-run
   main-is: sensu-run.hs
diff --git a/sensu-run.hs b/sensu-run.hs
--- a/sensu-run.hs
+++ b/sensu-run.hs
@@ -83,8 +83,11 @@
               then [hdl, stdout] else [hdl]
             aerr <- async $ redirectOutput err $ if redirect
               then [hdl, stderr] else [hdl]
+            status <- withTimeout timeout $ waitForProcess ph
+            terminateProcess ph
+            killProcessTree ph
             mapM_ waitCatch [aout, aerr]
-            withTimeout timeout $ waitForProcess ph
+            return status
         hClose hdl
         exited <- getCurrentTime
         rawOutput <- BL.readFile path
