diff --git a/test/stamp-propagation/test-stamp-propagation.lisp b/test/stamp-propagation/test-stamp-propagation.lisp
index b07ca07c4b97978fc6bf3faebb2fde6208daf059..71921abd5ad90cd67bd8a506183adda604832d1b 100644
--- a/test/stamp-propagation/test-stamp-propagation.lisp
+++ b/test/stamp-propagation/test-stamp-propagation.lisp
@@ -191,8 +191,9 @@
 
 
 (cond
-  #+(and asdf3 (not abcl) (not xcl)) ;; TODO: figure out why ABCL and XCL fail to recompile anything.
-  (t (test-defsystem :asdf))
+  #+asdf3 ;; TODO: figure out why ABCL and XCL fail to recompile anything.
+  ((and #+(or abcl xcl) (use-cache-p :asdf))
+   (test-defsystem :asdf))
   (t (signals error (test-defsystem :asdf))))
 
 #+(or genera lispworks)