diff --git a/t/throw_catch.t b/t/throw_catch.t
new file mode 100644
index 0000000..84de627
--- /dev/null
+++ b/t/throw_catch.t
@@ -0,0 +1,31 @@
+(expect "catch - without throw"
+        (equal 'ok
+               (catch 'exc1
+                 'ok)))
+
+(expect "catch - with throw"
+        (equal 'ok
+               (catch 'exc2
+                 (throw 'exc2 'ok)
+                 'fail)))
+
+(expect "catch - throw caught by inner catch"
+        (equal 'ok
+               (catch 'exc3a
+                 (catch 'exc3b
+                   (throw 'exc3b 'fail))
+                 'ok)))
+
+(expect "catch - throw caught by outer catch"
+        (equal 'ok
+               (catch 'exc4a
+                 (catch 'exc4b
+                   (throw 'exc4a 'ok))
+                 'fail)))
+
+(expect "catch - inner catch shadows outer catch"
+        (equal 'ok
+               (catch 'exc5
+                 (catch 'exc5
+                   (throw 'exc5 'fail))
+                 'ok)))