diff --git a/test/defsystem-depends-on/defsystem-dependency.lisp b/test/defsystem-depends-on/defsystem-dependency.lisp
index 0442efc702e424c5f2f9bfea451c8bd5db851126..c5f34a143cbfc7def1f9c01bfa9984b2e5383420 100644
--- a/test/defsystem-depends-on/defsystem-dependency.lisp
+++ b/test/defsystem-depends-on/defsystem-dependency.lisp
@@ -3,3 +3,9 @@
 (incf *dd*)
 (format t "Loaded defsystem-dependency.lisp ~d time~(~:*~p~)~%" *dd*)
 (setf (find-class 'asdf::my-cl-source-file) (find-class 'cl-source-file))
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (defvar *cdd* 0))
+
+(eval-when (:compile-toplevel :execute)
+  (incf *cdd*))
diff --git a/test/defsystem-depends-on/overlapping-dependency.lisp b/test/defsystem-depends-on/overlapping-dependency.lisp
index 68f718059b96c63ad3007ee199cc5d4c8f08466f..a923080f11d4ba883c823b26def6558893f2411c 100644
--- a/test/defsystem-depends-on/overlapping-dependency.lisp
+++ b/test/defsystem-depends-on/overlapping-dependency.lisp
@@ -1,3 +1,9 @@
 (in-package :asdf-test)
 (defvar *od* 0)
 (incf *od*)
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (defvar *cod* 0))
+
+(eval-when (:compile-toplevel :execute)
+  (incf *cod*))
diff --git a/test/test-defsystem-depends-on-phase-overlap.script b/test/test-defsystem-depends-on-phase-overlap.script
index 1b1bae41b69ccfe436fc40b4b2574f024d0f455d..8c8cb112452501aee9a945956f53187f8dcc2dd6 100644
--- a/test/test-defsystem-depends-on-phase-overlap.script
+++ b/test/test-defsystem-depends-on-phase-overlap.script
@@ -8,14 +8,16 @@
 (defvar *dd* 0)
 (defvar *id* 0)
 (defvar *ms* 0)
+(defvar *cod* 0)
+(defvar *cdd* 0)
 (defun reset-vars (&optional (x 0))
-  (setf *od* x *dd* x *id* x *ms* x))
-(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0))
+  (setf *od* x *dd* x *id* x *ms* x *cod* x *cdd* x))
+(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0))
 
 (DBG "Finding main-system doesn't load defsystem-dependency")
 (reset-vars)
 (find-system "main-system")
-(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0))
+(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0))
 
 (DBG "Finding intermediate-dependency does load defsystem-dependency")
 (reset-vars)
@@ -25,12 +27,18 @@
 (DBG "Loading main-system doesn't reload defsystem-dependency or overlapping-dependency")
 (reset-vars)
 (load-system "main-system")
-(assert-equal (list *od* *dd* *id* *ms*) '(0 0 1 1))
+(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 1 1 0 0))
 
 (DBG "Loading main-system a second time doesn't reload anything")
 (reset-vars)
 (load-system "main-system")
-(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0))
+(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0))
+
+(DBG "Loading main-system in a different session loads but doesn't recompile")
+(reset-vars)
+(asdf::clear-registered-systems)
+(load-system "main-system")
+(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(1 1 1 1 0 0))
 
 (DBG :foo
      (component-sideway-dependencies (find-system "intermediate-dependency"))
@@ -55,3 +63,4 @@
   ;; This is what causes an issue without phase escalation:
   (test-system "defsystem-dependency"))
 (assert-equal *dd* 10)
+