diff --git a/Language/Haskell/TH/Ppr.hs b/Language/Haskell/TH/Ppr.hs
--- a/Language/Haskell/TH/Ppr.hs
+++ b/Language/Haskell/TH/Ppr.hs
@@ -174,12 +174,12 @@
 pprPat i (LitP l)     = pprLit i l
 pprPat _ (VarP v)     = pprName' Applied v
 pprPat _ (TupP ps)    = parens $ sep $ punctuate comma $ map ppr ps
-pprPat i (ConP s ps)  = parensIf (i > noPrec) $ pprName' Applied s
-                                            <+> sep (map (pprPat appPrec) ps)
+pprPat i (ConP s ps)  = parensIf (i >= appPrec) $ pprName' Applied s
+                                              <+> sep (map (pprPat appPrec) ps)
 pprPat i (InfixP p1 n p2)
-                      = parensIf (i > noPrec) (pprPat opPrec p1 <+>
-                                               pprName' Infix n <+>
-                                               pprPat opPrec p2)
+                      = parensIf (i >= opPrec) (pprPat opPrec p1 <+>
+                                                pprName' Infix n <+>
+                                                pprPat opPrec p2)
 pprPat i (TildeP p)   = parensIf (i > noPrec) $ char '~' <> pprPat appPrec p
 pprPat i (BangP p)    = parensIf (i > noPrec) $ char '!' <> pprPat appPrec p
 pprPat i (AsP v p)    = parensIf (i > noPrec) $ ppr v <> text "@"
diff --git a/template-haskell.cabal b/template-haskell.cabal
--- a/template-haskell.cabal
+++ b/template-haskell.cabal
@@ -1,5 +1,5 @@
 name:		template-haskell
-version:	2.4.0.0
+version:	2.4.0.1
 license:	BSD3
 license-file:	LICENSE
 maintainer:	libraries@haskell.org
@@ -10,7 +10,7 @@
 Cabal-Version: >= 1.6
 
 Library
-    build-depends: base >= 3 && < 5,
+    build-depends: base >= 4.2 && < 5,
                    pretty, containers
     exposed-modules:
         Language.Haskell.TH.Syntax.Internals
