diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for Extra
 
+1.5.2
+    Add errorWithoutStackTrace to Control.Exception.Extra
 1.5.1
     #25, add zipFrom and zipWithFrom
     #24, add eitherToMaybe and maybeToEither
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Neil Mitchell 2014-2016.
+Copyright Neil Mitchell 2014-2017.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/extra.cabal b/extra.cabal
--- a/extra.cabal
+++ b/extra.cabal
@@ -1,13 +1,13 @@
 cabal-version:      >= 1.18
 build-type:         Simple
 name:               extra
-version:            1.5.1
+version:            1.5.2
 license:            BSD3
 license-file:       LICENSE
 category:           Development
 author:             Neil Mitchell <ndmitchell@gmail.com>
 maintainer:         Neil Mitchell <ndmitchell@gmail.com>
-copyright:          Neil Mitchell 2014-2016
+copyright:          Neil Mitchell 2014-2017
 synopsis:           Extra functions I use.
 description:
     A library of extra functions for the standard Haskell libraries. Most functions are simple additions, filling out missing functionality. A few functions are available in later versions of GHC, but this package makes them available back to GHC 7.2.
@@ -15,7 +15,7 @@
     The module "Extra" documents all functions provided by this library. Modules such as "Data.List.Extra" provide extra functions over "Data.List" and also reexport "Data.List". Users are recommended to replace "Data.List" imports with "Data.List.Extra" if they need the extra functionality.
 homepage:           https://github.com/ndmitchell/extra#readme
 bug-reports:        https://github.com/ndmitchell/extra/issues
-tested-with:        GHC==8.0.1, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
+tested-with:        GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
 
 extra-doc-files:
     CHANGES.txt
@@ -73,7 +73,7 @@
     if !os(windows)
         build-depends: unix
     hs-source-dirs: test
-    ghc-options: -main-is Test -threaded -with-rtsopts=-N4
+    ghc-options: -main-is Test -threaded "-with-rtsopts=-N4 -K1K"
     main-is:        Test.hs
     other-modules:
         TestCustom
diff --git a/src/Control/Concurrent/Extra.hs b/src/Control/Concurrent/Extra.hs
--- a/src/Control/Concurrent/Extra.hs
+++ b/src/Control/Concurrent/Extra.hs
@@ -241,7 +241,7 @@
             x <- readVar var
             case x of
                 Right res -> return res
-                Left bar -> error "Cortex.Concurrent.Extra, internal invariant violated in Barrier"
+                Left bar -> error "Control.Concurrent.Extra, internal invariant violated in Barrier"
 
 
 -- | A version of 'waitBarrier' that never blocks, returning 'Nothing'
diff --git a/src/Control/Exception/Extra.hs b/src/Control/Exception/Extra.hs
--- a/src/Control/Exception/Extra.hs
+++ b/src/Control/Exception/Extra.hs
@@ -7,6 +7,7 @@
 module Control.Exception.Extra(
     module Control.Exception,
     retry, retryBool,
+    errorWithoutStackTrace,
     showException, stringException,
     errorIO, displayException,
     -- * Exception catching/ignoring
@@ -49,6 +50,12 @@
 --   Part of the 'Exception' class in GHC 7.10 onwards.
 displayException :: Exception e => e -> String
 displayException = show
+#endif
+
+#if __GLASGOW_HASKELL__ < 800
+-- | A variant of 'error' that does not produce a stack trace.
+errorWithoutStackTrace :: String -> a
+errorWithoutStackTrace = error
 #endif
 
 
diff --git a/src/Extra.hs b/src/Extra.hs
--- a/src/Extra.hs
+++ b/src/Extra.hs
@@ -11,7 +11,7 @@
     getNumCapabilities, setNumCapabilities, withNumCapabilities, forkFinally, once, onceFork, Lock, newLock, withLock, withLockTry, Var, newVar, readVar, writeVar, modifyVar, modifyVar_, withVar, Barrier, newBarrier, signalBarrier, waitBarrier, waitBarrierMaybe,
     -- * Control.Exception.Extra
     -- | Extra functions available in @"Control.Exception.Extra"@.
-    retry, retryBool, showException, stringException, errorIO, displayException, ignore, catch_, handle_, try_, catchJust_, handleJust_, tryJust_, catchBool, handleBool, tryBool,
+    retry, retryBool, errorWithoutStackTrace, showException, stringException, errorIO, displayException, ignore, catch_, handle_, try_, catchJust_, handleJust_, tryJust_, catchBool, handleBool, tryBool,
     -- * Control.Monad.Extra
     -- | Extra functions available in @"Control.Monad.Extra"@.
     whenJust, whenJustM, unit, maybeM, eitherM, loopM, whileM, partitionM, concatMapM, concatForM, mconcatMapM, mapMaybeM, findM, firstJustM, whenM, unlessM, ifM, notM, (||^), (&&^), orM, andM, anyM, allM,
diff --git a/src/System/Directory/Extra.hs b/src/System/Directory/Extra.hs
--- a/src/System/Directory/Extra.hs
+++ b/src/System/Directory/Extra.hs
@@ -68,6 +68,7 @@
 
 
 -- | Like 'listFiles', but goes recursively through all subdirectories.
+--   This function will follow symlinks, and if they form a loop, this function will not terminate.
 --
 -- > listTest listFilesRecursive ["bar.txt","zoo","foo" </> "baz.txt"] ["bar.txt","zoo","foo" </> "baz.txt"]
 listFilesRecursive :: FilePath -> IO [FilePath]
