diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Changelog for `annotated-exception`
 
+## 0.2.0.4
+
+- [#18](https://github.com/parsonsmatt/annotated-exception/pull/18)
+    - Add `checkpointCallStack` even when `catch` doesn't catch an
+      `AnnotatedException`
+
 ## 0.2.0.3
 
 - [#17](https://github.com/parsonsmatt/annotated-exception/pull/17)
diff --git a/annotated-exception.cabal b/annotated-exception.cabal
--- a/annotated-exception.cabal
+++ b/annotated-exception.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           annotated-exception
-version:        0.2.0.3
+version:        0.2.0.4
 synopsis:       Exceptions, with checkpoints and context.
 description:    Please see the README on Github at <https://github.com/parsonsmatt/annotated-exception#readme>
 category:       Control
diff --git a/src/Control/Exception/Annotated.hs b/src/Control/Exception/Annotated.hs
--- a/src/Control/Exception/Annotated.hs
+++ b/src/Control/Exception/Annotated.hs
@@ -202,7 +202,8 @@
 mkAnnotatedHandlers :: (HasCallStack, MonadCatch m) => [Handler m a] -> [Handler m a]
 mkAnnotatedHandlers xs =
     xs >>= \(Handler hndlr) ->
-        [ Handler hndlr
+        [ Handler $ \e ->
+            checkpointCallStack $ hndlr e
         , Handler $ \(AnnotatedException anns e) ->
             checkpointMany anns $ hndlr e
         ]
diff --git a/test/Control/Exception/AnnotatedSpec.hs b/test/Control/Exception/AnnotatedSpec.hs
--- a/test/Control/Exception/AnnotatedSpec.hs
+++ b/test/Control/Exception/AnnotatedSpec.hs
@@ -122,22 +122,40 @@
             action
                 `shouldThrow`
                     (userError "uh oh" ==)
-        it "includes a callstack location" $ do
-            let
-                action =
-                    throw TestException
-                        `catch`
-                            \TestException ->
-                                throw TestException
-            action
-                `Safe.catch`
-                        \(e :: AnnotatedException TestException) -> do
-                            annotations e
-                                `callStackFunctionNamesShouldBe`
-                                    [ "throw"
-                                    , "throw"
-                                    , "catch"
-                                    ]
+
+        describe "includes a callstack location" $ do
+            it "with an originally annotated exception" $ do
+                let
+                    action =
+                        throw TestException
+                            `catch`
+                                \TestException ->
+                                    throw TestException
+                action
+                    `Safe.catch`
+                            \(e :: AnnotatedException TestException) -> do
+                                annotations e
+                                    `callStackFunctionNamesShouldBe`
+                                        [ "throw"
+                                        , "throw"
+                                        , "catch"
+                                        ]
+            it "with a non-annotated original exception" $ do
+                let
+                    action =
+                        Safe.throw TestException
+                            `catch`
+                                \TestException ->
+                                    throw TestException
+                action
+                    `Safe.catch`
+                            \(e :: AnnotatedException TestException) -> do
+                                annotations e
+                                    `callStackFunctionNamesShouldBe`
+                                        [ "throw"
+                                        , "catch"
+                                        ]
+
     describe "catches" $ do
         it "has a callstack entry" $ do
             let
