diff --git a/test/test-undeferred-warnings.script b/test/test-undeferred-warnings.script
new file mode 100644
index 0000000000000000000000000000000000000000..810bcd23d1794597a400a98dec4296e8da2ea669
--- /dev/null
+++ b/test/test-undeferred-warnings.script
@@ -0,0 +1,22 @@
+;;; -*- Lisp -*-
+
+;;;---------------------------------------------------------------------------
+;;; Intended to test behaviors that we see when the deferred warnings check is
+;;; NOT deferred.
+;;; ---------------------------------------------------------------------------
+
+(in-package :asdf-test)
+
+(def-test-system :undefined-variables
+  :components ((:file "fun-with-undefined-locals")))
+
+(errors #+(or allegro clozure) compile-file-error
+        #+(or cmu scl) null
+        #+sbcl compile-failed-error
+        (let ((*compile-file-warnings-behaviour* :error))
+          (load-system :undefined-variables)))
+(errors #+(or allegro clozure) compile-file-error
+        #+(or cmu scl) null
+        #+sbcl compile-failed-error
+        (let ((*compile-file-warnings-behaviour* :warning))
+          (load-system :undefined-variables :force t)))