diff --git a/ansi-tests/invoke-debugger.lsp b/ansi-tests/invoke-debugger.lsp
index 700cf42eedc5d64de3e805ea794c17cd3de7f015..405ee797edeb7d1f231df21c4fa2db400c6f7651 100644
--- a/ansi-tests/invoke-debugger.lsp
+++ b/ansi-tests/invoke-debugger.lsp
@@ -21,3 +21,33 @@
 	 (invoke-debugger cnd)))
    'bad)
   good)
+
+(deftest invoke-debugger.error.1
+  (classify-error (invoke-debugger))
+  program-error)
+
+(deftest invoke-debugger.error.2
+  (classify-error (invoke-debugger (make-condition 'simple-error) nil))
+  program-error)
+
+;;; If the debugger hook function expects the wrong number
+;;; of arguments, a program-error should be thrown in safe code
+;;; This error is thrown 'prior to entry to the standard debugger'.
+
+(deftest invoke-debugger.error.3
+  (classify-error
+   (let ((*debugger-hook* #'(lambda () nil)))
+     (invoke-debugger (make-condition 'simple-error))))
+  program-error)
+
+(deftest invoke-debugger.error.4
+  (classify-error
+   (let ((*debugger-hook* #'(lambda (c) c)))
+     (invoke-debugger (make-condition 'simple-error))))
+  program-error)
+
+(deftest invoke-debugger.error.5
+  (classify-error
+   (let ((*debugger-hook* #'(lambda (c hook x) (list c hook x))))
+     (invoke-debugger (make-condition 'simple-error))))
+  program-error)