diff --git a/test/test-defsystem-depends-on-phase-overlap.script b/test/test-defsystem-depends-on-phase-overlap.script
new file mode 100644
index 0000000000000000000000000000000000000000..9a15c53ca97b2ad6e61b08ddf0aeab02f348d191
--- /dev/null
+++ b/test/test-defsystem-depends-on-phase-overlap.script
@@ -0,0 +1,32 @@
+;;-*- Lisp -*-
+
+(in-package :asdf-test)
+
+(setf *central-registry* nil)
+
+(defparameter *od* 0)
+(def-test-system "overlapping-dependency"
+  :perform (load-op (o c) (incf *od*)))
+
+(defparameter *dd* 0)
+(def-test-system "defsystem-dependency"
+  :depends-on ("overlapping-dependency")
+  :perform (load-op (o c) (incf *dd*)))
+
+(defparameter *id* 0)
+(def-test-system "intermediate-dependency"
+  :defsystem-depends-on ("defsystem-dependency")
+  :perform (load-op (o c) (incf *id*)))
+
+(defparameter *ms* 0)
+(def-test-system "main-system"
+  :depends-on ("overlapping-dependency" "intermediate-dependency")
+  :perform (load-op (o c) (incf *ms*)))
+
+(DBG "Load it once")
+(load-system "main-system")
+(assert-equal (list *od* *dd* *id* *ms*) '(1 1 1 1))
+
+(DBG "Load it a second time, forcing od")
+(load-system "main-system" :force '("overlapping-dependency"))
+(assert-equal (list *od* *dd* *id* *ms*) '(2 2 2 2))