diff --git a/IPPrint.hs b/IPPrint.hs
--- a/IPPrint.hs
+++ b/IPPrint.hs
@@ -1,13 +1,20 @@
 module IPPrint(pshow, pprint) where
 
+import Extra.Terminal (getWidth)
 import Language.Haskell.Parser
 import Language.Haskell.Pretty
 import Text.Read
 
+defaultLineWidth :: Int
+defaultLineWidth = 80
+
 pshow :: Show a => a -> String
-pshow v =
+pshow = pshowWidth defaultLineWidth
+
+pshowWidth :: Show a => Int -> a -> String
+pshowWidth width v =
     case parseModule ("value = "++s) of
-      ParseOk         m -> tidy $ prettyPrint m
+      ParseOk         m -> tidy $ prettyPrintStyleMode (Style PageMode width 1.1) defaultMode m
       ParseFailed _ _   -> s
     where
       s = show v
@@ -18,7 +25,10 @@
 
 
 pprint :: Show a => a -> IO ()
-pprint = putStrLn . pshow
+pprint v = do
+    mw <- getWidth
+    let width = maybe defaultLineWidth id mw
+    putStrLn $ pshowWidth width v
 
 skipBoring :: ReadPrec ()
 skipBoring =
diff --git a/ipprint.cabal b/ipprint.cabal
--- a/ipprint.cabal
+++ b/ipprint.cabal
@@ -1,6 +1,6 @@
 Name:           ipprint
 Category:       Text
-Version:        0.3
+Version:        0.4
 License:        BSD3
 License-file:   LICENSE
 Author:         Gleb Alexeyev
@@ -18,6 +18,10 @@
                 >    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],                
                 >    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],                
                 >    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],                
-                >    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]]                
+                >    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]]
+                .
+                Terminal width support added by Jean-Marie Gaillourdet. 
 Exposed-modules:
 	IPPrint
+Build-Type: Simple
+Build-Depends: base >= 2 && <= 5, Extra >= 1.33 && < 1.34
