diff --git a/System/Console/Terminfo/PrettyPrint.hs b/System/Console/Terminfo/PrettyPrint.hs
--- a/System/Console/Terminfo/PrettyPrint.hs
+++ b/System/Console/Terminfo/PrettyPrint.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module System.Console.Terminfo.PrettyPrint
   ( 
   -- * Raw Effect (requires the effect be present)
@@ -59,10 +60,12 @@
 import Control.Applicative
 import Control.Monad
 import Control.Monad.Trans.State
-import UI.HSCurses.Curses (initScr, scrSize, endWin)
 import Control.Monad.Trans.Class
 import Control.Exception (finally)
 import System.IO (stdout)
+#ifdef Cursed
+import System.Console.Terminfo.PrettyPrint.Curses
+#endif
 
 
 data ScopedEffect
@@ -198,11 +201,15 @@
 evalTermState s = liftM fst $ runStateT s []
 
 kludgeWindowSize :: IO Int
+#ifdef Cursed
 kludgeWindowSize = do
    _ <- initScr
-   s <- snd <$> scrSize
+   s <- screenWidth
    s <$ guard (s >= 30 && s < 320)
  `finally` endWin
+#else
+kludgeWindowSize = fail "missing ncurses"
+#endif
 
 displayLn :: PrettyTerm t => t -> IO ()
 displayLn t = displayDoc 0.6 (prettyTerm t <> linebreak)
@@ -219,7 +226,7 @@
 displayDoc' term ribbon doc = do
   cols <- kludgeWindowSize `mplus` 
           return (maybe 80 id (getCapability term termColumns))
-  displayDoc'' term ribbon cols doc
+  displayDoc'' term ribbon (cols - 1) doc
 
 displayDoc'' :: PrettyTerm t => Terminal -> Float -> Int -> t -> IO ()
 displayDoc'' term ribbon cols doc = 
diff --git a/System/Console/Terminfo/PrettyPrint/Curses.hs b/System/Console/Terminfo/PrettyPrint/Curses.hs
new file mode 100644
--- /dev/null
+++ b/System/Console/Terminfo/PrettyPrint/Curses.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+module System.Console.Terminfo.PrettyPrint.Curses
+  ( initScr
+  , screenWidth
+  , endWin
+  ) where
+
+import Data.Functor
+import Foreign.Marshal.Error (throwIfNull)
+import Foreign.C.Types (CInt)
+import Foreign.Ptr (Ptr)
+import Foreign.Storable (peek)
+
+type Window = Ptr ()
+
+initScr :: IO Window
+initScr = throwIfNull "initscr" initscr
+
+foreign import ccall unsafe "curses.h initscr" initscr :: IO Window
+
+screenWidth :: IO Int
+screenWidth = fromIntegral <$> peek colsPtr
+
+foreign import ccall "curses.h &COLS" colsPtr :: Ptr CInt
+foreign import ccall unsafe "curses.h endwin" endWin :: IO CInt
diff --git a/wl-pprint-terminfo.cabal b/wl-pprint-terminfo.cabal
--- a/wl-pprint-terminfo.cabal
+++ b/wl-pprint-terminfo.cabal
@@ -1,22 +1,26 @@
-name:          wl-pprint-terminfo
-category:      Control, Monads, Text
-version:       0.6
-cabal-version: >= 1.6
-license:       BSD3
-license-file:  LICENSE
-author:        Edward A. Kmett
-maintainer:    Edward A. Kmett <ekmett@gmail.com>
-stability:     experimental
-homepage:      git://github.com/ekmett/wl-pprint-terminfo/
-copyright:     Copyright (C) 2011 Edward A. Kmett
-synopsis:      A color pretty printer with terminfo support
-description:   A color pretty printer with terminfo support
-build-type:    Simple
+name:               wl-pprint-terminfo
+category:           Control, Monads, Text
+version:            0.7.0
+cabal-version:      >= 1.6
+license:            BSD3
+license-file:       LICENSE
+author:             Edward A. Kmett
+maintainer:         Edward A. Kmett <ekmett@gmail.com>
+stability:          experimental
+homepage:           git://github.com/ekmett/wl-pprint-terminfo/
+copyright:          Copyright (C) 2011 Edward A. Kmett
+synopsis:           A color pretty printer with terminfo support
+description:        A color pretty printer with terminfo support
+build-type:         Simple
 
 source-repository head
   type: git
   location: git://github.com/ekmett/wl-pprint-terminfo.git
 
+flag Cursed
+  manual: False
+  default: True
+
 library
 
   build-depends: 
@@ -24,9 +28,14 @@
     semigroups       >= 0.8   && < 0.9,
     containers       >= 0.4   && < 0.5,
     wl-pprint-extras >= 1.5   && < 1.6,
-    hscurses         >= 1.4   && < 1.5,
     terminfo         >= 0.3.2 && < 0.4,
     transformers     >= 0.2.2 && < 0.3
+
+  if flag(Cursed)
+    extra-libraries: curses
+    other-modules:
+      System.Console.Terminfo.PrettyPrint.Curses
+    cpp-options: -DCursed
 
   exposed-modules:
     System.Console.Terminfo.PrettyPrint
