diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,9 @@
+3.7.1
+-----
+* Responds more gracefully to `SFail`, which was added to `wl-pprint-terminfo`.
+* Added support for `terminfo` 0.4
+
+
 3.7
 ---
 * Added support for `text` 1.0
diff --git a/src/System/Console/Terminfo/PrettyPrint.hs b/src/System/Console/Terminfo/PrettyPrint.hs
--- a/src/System/Console/Terminfo/PrettyPrint.hs
+++ b/src/System/Console/Terminfo/PrettyPrint.hs
@@ -188,11 +188,11 @@
 
 displayCap :: SimpleTermDoc -> StateT TermState Capability TermOutput
 displayCap = go where
-  go SEmpty        = return mempty
   go (SChar c x)   = (termText [c] <#>) <$> go x
   go (SText _ s x) = (termText s <#>) <$> go x
   go (SLine i x)   = (termText ('\n': spaces i) <#>) <$> go x
   go (SEffect e t) = (<#>) <$> eval e <*> go t
+  go _             = return mempty
 
 spaces :: Int -> String
 spaces n | n <= 0    = ""
diff --git a/wl-pprint-terminfo.cabal b/wl-pprint-terminfo.cabal
--- a/wl-pprint-terminfo.cabal
+++ b/wl-pprint-terminfo.cabal
@@ -1,6 +1,6 @@
 name:               wl-pprint-terminfo
 category:           Control, Monads, Text
-version:            3.7
+version:            3.7.1
 cabal-version:      >= 1.6
 license:            BSD3
 license-file:       LICENSE
@@ -32,6 +32,8 @@
   location: git://github.com/ekmett/wl-pprint-terminfo.git
 
 flag Cursed
+  description: Build with curses. Used to determine window width. Without
+               curses, width is always 80 columns.
   manual: False
   default: True
 
@@ -50,7 +52,7 @@
     nats             >= 0.1     && < 1,
     semigroups       >= 0.9     && < 1,
     wl-pprint-extras >= 3.4     && < 4,
-    terminfo         >= 0.3.2   && < 0.4,
+    terminfo         >= 0.3.2   && < 0.5,
     transformers     >= 0.2     && < 0.4,
     text             >= 0.11    && < 1.2
 
