diff --git a/src/Language/Haskell/TH/ReifyMany.hs b/src/Language/Haskell/TH/ReifyMany.hs
--- a/src/Language/Haskell/TH/ReifyMany.hs
+++ b/src/Language/Haskell/TH/ReifyMany.hs
@@ -132,14 +132,12 @@
             then return []
             else do
                 State.put (S.insert n seen)
-                minfo <- State.lift $ recover (return Nothing) (fmap Just (reify n))
-                case minfo of
-                    Just info -> do
-                        (shouldEmit, ns) <- State.lift $ recurse (n, info)
-                        (if shouldEmit
-                             then fmap ((n, info):)
-                             else id) $ fmap concat $ mapM go ns
-                    _ -> return []
+                info <- State.lift (reify n)
+                (shouldEmit, ns) <- State.lift $ recurse (n, info)
+                results <- fmap concat $ mapM go ns
+                if shouldEmit
+                    then return ((n, info) : results)
+                    else return results
 
 -- | Like 'getDatatypesWithoutInstanceOf', but more precise as it uses
 -- the 'isInstance' function
diff --git a/th-reify-many.cabal b/th-reify-many.cabal
--- a/th-reify-many.cabal
+++ b/th-reify-many.cabal
@@ -1,5 +1,5 @@
 name:              th-reify-many
-version:           0.1.5.2
+version:           0.1.6
 synopsis:          Recurseively reify template haskell datatype info
 
 description:       @th-reify-many@ provides functions for recursively reifying top
