diff --git a/descriptive.cabal b/descriptive.cabal
--- a/descriptive.cabal
+++ b/descriptive.cabal
@@ -1,5 +1,5 @@
 name:                descriptive
-version:             0.4.2
+version:             0.4.3
 synopsis:            Self-describing consumers/parsers; forms, cmd-line args, JSON, etc.
 description:         Self-describing consumers/parsers. See the README.md for more information. It is currently EXPERIMENTAL.
 stability:           Experimental
diff --git a/src/Descriptive/JSON.hs b/src/Descriptive/JSON.hs
--- a/src/Descriptive/JSON.hs
+++ b/src/Descriptive/JSON.hs
@@ -204,7 +204,10 @@
       -> Consumer s Doc a
 label desc =
   wrap (\s d -> (Wrap doc (fst (d s)),s))
-       (\s _ p -> p s)
+       (\s _ p ->
+          case p s of
+            (Failed e,s') -> (Failed (Wrap doc e),s')
+            k -> k)
   where doc = Label desc
 
 -- | Wrap a consumer with some handy information.
@@ -213,5 +216,8 @@
      -> Consumer s Doc a
 info desc =
   wrap (\s d -> (Wrap doc (fst (d s)),s))
-       (\s _ p -> p s)
+       (\s _ p ->
+          case p s of
+            (Failed e,s') -> (Failed (Wrap doc e),s')
+            k -> k)
   where doc = Info desc
