diff --git a/hopenpgp-tools.cabal b/hopenpgp-tools.cabal
--- a/hopenpgp-tools.cabal
+++ b/hopenpgp-tools.cabal
@@ -1,5 +1,5 @@
 name:                hopenpgp-tools
-version:             0.19.3
+version:             0.19.4
 synopsis:            hOpenPGP-based command-line tools
 description:         command-line tools for performing some OpenPGP-related operations
 homepage:            http://floss.scru.org/hopenpgp-tools
@@ -18,7 +18,7 @@
   other-modules:       HOpenPGP.Tools.Common
                ,       HOpenPGP.Tools.Lexer
                ,       HOpenPGP.Tools.Parser
-  build-depends:       base                   > 4    && < 5
+  build-depends:       base                   > 4         && < 5
                ,       aeson
                ,       ansi-wl-pprint         >= 0.6.7
                ,       array
@@ -28,7 +28,7 @@
                ,       conduit                >= 1.1
                ,       conduit-extra          >= 1.1
                ,       errors
-               ,       hOpenPGP               >= 2.0
+               ,       hOpenPGP               >= 2.0      && < 3
                ,       lens
                ,       monad-loops
                ,       openpgp-asciiarmor     >= 0.1
@@ -48,7 +48,7 @@
   other-modules:       HOpenPGP.Tools.Common
                ,       HOpenPGP.Tools.HKP
                ,       HOpenPGP.Tools.TKUtils
-  build-depends:       base                   > 4    && < 5
+  build-depends:       base                   > 4         && < 5
                ,       aeson
                ,       ansi-wl-pprint         >= 0.6.7
                ,       base16-bytestring
@@ -62,7 +62,7 @@
                ,       cryptohash             >= 0.7.7
                ,       directory
                ,       errors
-               ,       hOpenPGP               >= 2.5
+               ,       hOpenPGP               >= 2.5      && < 3
                ,       http-client
                ,       http-client-tls
                ,       http-types
@@ -87,7 +87,7 @@
   other-modules:       HOpenPGP.Tools.Common
                ,       HOpenPGP.Tools.Lexer
                ,       HOpenPGP.Tools.Parser
-  build-depends:       base                   > 4    && < 5
+  build-depends:       base                   > 4         && < 5
                ,       aeson
                ,       ansi-wl-pprint         >= 0.6.7
                ,       array
@@ -103,7 +103,7 @@
                ,       errors
                ,       fgl
                ,       graphviz
-               ,       hOpenPGP               >= 2.2
+               ,       hOpenPGP               >= 2.2      && < 3
                ,       ixset-typed
                ,       lens
                ,       monad-loops
@@ -126,4 +126,4 @@
 source-repository this
   type:     git
   location: https://anonscm.debian.org/git/users/clint/hopenpgp-tools.git
-  tag:      hopenpgp-tools/0.19.3
+  tag:      hopenpgp-tools/0.19.4
diff --git a/hot.hs b/hot.hs
--- a/hot.hs
+++ b/hot.hs
@@ -54,7 +54,7 @@
 import Options.Applicative.Extra (customExecParser, helper, hsubparser)
 import Options.Applicative.Types (Parser)
 import qualified Text.PrettyPrint.ANSI.Leijen as PPAL
-import Text.PrettyPrint.Free (Pretty, pretty)
+import Text.PrettyPrint.Free (group, hardline, hPutDoc, Pretty, pretty)
 
 data Command = DumpC DumpOptions | DeArmorC | ArmorC ArmoringOptions | FilterC FilteringOptions
 
@@ -86,7 +86,7 @@
 printer = CL.mapM_ (liftIO . print)
 
 prettyPrinter :: (Pretty a, MonadIO m) => Sink a m ()
-prettyPrinter = CL.mapM_ (liftIO . putStrLn . show . pretty)
+prettyPrinter = CL.mapM_ (liftIO . hPutDoc stdout . (<> hardline) . group . pretty)
 
 jsonSink :: (A.ToJSON a, MonadIO m) => Sink a m ()
 jsonSink = CL.mapM_ (liftIO . BL.putStr . flip BL.snoc 0x0a . A.encode)
