diff --git a/postgresql-simple.cabal b/postgresql-simple.cabal
--- a/postgresql-simple.cabal
+++ b/postgresql-simple.cabal
@@ -1,5 +1,5 @@
 Name:                postgresql-simple
-Version:             0.4.0.0
+Version:             0.4.0.1
 Synopsis:            Mid-Level PostgreSQL client library
 Description:
     Mid-Level PostgreSQL client library, forked from mysql-simple.
@@ -52,7 +52,7 @@
      Database.PostgreSQL.Simple.TypeInfo.Types
 
   Build-depends:
-    aeson >= 0.6.2,
+    aeson >= 0.6,
     attoparsec >= 0.10.3,
     base < 5,
     blaze-builder,
@@ -79,7 +79,7 @@
 source-repository this
   type:     git
   location: http://github.com/lpsmith/postgresql-simple
-  tag:      v0.4.0.0
+  tag:      v0.4.0.1
 
 test-suite test
   type:           exitcode-stdio-1.0
diff --git a/src/Database/PostgreSQL/Simple/FromField.hs b/src/Database/PostgreSQL/Simple/FromField.hs
--- a/src/Database/PostgreSQL/Simple/FromField.hs
+++ b/src/Database/PostgreSQL/Simple/FromField.hs
@@ -169,6 +169,16 @@
     -- Returns a list of exceptions if the conversion fails.  In the case of
     -- library instances,  this will usually be a single 'ResultError',  but
     -- may be a 'UnicodeException'.
+    --
+    -- Note that retaining any reference to the 'Field' argument causes
+    -- the entire @LibPQ.'PQ.Result'@ to be retained.  Thus, implementations
+    -- of 'fromField' should return results that do not refer to this value
+    -- after the result have been evaluated to WHNF.
+    --
+    -- Note that as of @postgresql-simple-0.4.0.0@,  the 'ByteString' value
+    -- has already been copied out of the @LibPQ.'PQ.Result'@ before it has
+    -- been passed to 'fromField'.  This is because for short strings, it's
+    -- cheaper to copy the string than to set up a finalizer.
 
 -- | Returns the data type name.  This is the preferred way of identifying
 --   types that do not have a stable type oid, such as types provided by
