diff --git a/Distribution/PackageDescription/TH.hs b/Distribution/PackageDescription/TH.hs
--- a/Distribution/PackageDescription/TH.hs
+++ b/Distribution/PackageDescription/TH.hs
@@ -7,6 +7,7 @@
     -- * Template Haskell functions
     packageVariable,
     packageVariableFrom,
+    packageString,
     -- * Cabal file data structures
     -- | The data structures for the cabal file are re-exported here for ease of use.
     PackageDescription(..),
@@ -18,13 +19,27 @@
 import Distribution.Package
 import Distribution.Version
 
-import Distribution.Text (Text, display)
+import Distribution.Text
+import Distribution.Compat.ReadP
 import Distribution.Verbosity (silent)
+import Text.PrettyPrint
 import Distribution.PackageDescription.Parse (readPackageDescription)
 import System.Directory (getCurrentDirectory, getDirectoryContents)
 import Data.List (isSuffixOf)
 import Language.Haskell.TH (Q, Exp, stringE, runIO)
 
+newtype DocString = DocString String
+
+instance Text DocString where
+  parse = DocString <$> (readS_to_P read)
+  disp (DocString s) = text s
+
+-- | Provides a Text instance for String, allowing text fields to be used
+--   in `packageVariable`. Use it composed with an accessor, eg.
+--       packageVariable (packageString . copyright)
+packageString :: String -> DocString
+packageString = DocString
+
 -- | Renders the package variable specified by the function.
 -- The cabal file interrogated is the first one that is found 
 -- in the current working directory.
@@ -38,8 +53,11 @@
 
 ------
 renderField :: Text b => IO a -> (a -> b) -> Q Exp
-renderField pd f = runIO pd >>= stringE . display . f 
+renderField pd f = renderFieldS pd (display . f)
 
+renderFieldS :: IO a -> (a -> String) -> Q Exp
+renderFieldS pd f = runIO pd >>= stringE . f
+
 currentPackageDescription :: IO PackageDescription
 currentPackageDescription = fmap packageDescription $ do
   dir <- getCurrentDirectory
@@ -59,7 +77,7 @@
   * Get this module name, use TH.location and loc_module. Parse each
     cabal file in the cwd and look for references to this module
     in each thing.
-  
+
 
   -}
 
diff --git a/cabal-file-th.cabal b/cabal-file-th.cabal
--- a/cabal-file-th.cabal
+++ b/cabal-file-th.cabal
@@ -1,5 +1,5 @@
 Name:                cabal-file-th
-Version:             0.2.3
+Version:             0.2.4
 Synopsis:            Template Haskell expressions for reading fields from a project's cabal file.
 Description:         Template Haskell expressions for reading fields from a project's cabal file.
 Homepage:            http://github.com/nkpart/cabal-file-th
@@ -20,15 +20,17 @@
 Library
   Exposed-modules:   Distribution.PackageDescription.TH
   Build-depends:     base >= 4 && < 5,
-                     Cabal >= 1.10 && < 1.17,
+                     Cabal >= 1.10,
                      directory,
-                     template-haskell
-  Ghc-options: -Wall
+                     template-haskell,
+                     pretty
+  Ghc-options: -Wall 
   
 Test-suite test
+  Ghc-options: -Wall
   Main-is:  Test.hs
   Hs-source-dirs:    test
   Type:     exitcode-stdio-1.0
   Build-depends: base >= 4 && < 5,
-                 cabal-file-th
+                 cabal-file-th, Cabal
 
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -2,11 +2,19 @@
 module Main where
 
 import Distribution.PackageDescription.TH
+import Control.Monad (when)
 
+main :: IO ()
 main = do
+  let simpleAssert msg a b =
+        when (a /= b) $
+          error (msg ++ ": expected " ++ b ++ ", read: " ++ a)
+
   putStrLn $ "This package is version " ++ $(packageVariable (pkgVersion . package))
   let testVersion = $(packageVariableFrom "test/test-version-interp.cabal" (pkgVersion . package))
-  let expectedVersion = "5.5.5"
-  if testVersion /= expectedVersion
-    then error ("Expected " ++ expectedVersion ++ ", read: " ++ testVersion)
-    else putStrLn "Everything went better than expected."
+      testCopyright = $(packageVariableFrom "test/test-version-interp.cabal" (packageString . copyright))
+  simpleAssert "version" testVersion "5.5.5"
+  simpleAssert "copyright" testCopyright "(c) 1953 Gumby"
+
+  putStrLn "Everything went better than expected."
+
diff --git a/test/test-version-interp.cabal b/test/test-version-interp.cabal
--- a/test/test-version-interp.cabal
+++ b/test/test-version-interp.cabal
@@ -1,9 +1,12 @@
 Name:                test-version-interp
 Version:             5.5.5
 License:             BSD3
-License-file:        LICENSE
 Build-type:          Simple
 Cabal-version:       >=1.2
 
+copyright: (c) 1953 Gumby
+
 Library
   Exposed-modules:     Test
+  build-depends: base, cabal-file-th
+
