diff --git a/test/script-support.lisp b/test/script-support.lisp
index 45b94a3aeefd0e4c67718f9997a837eaa57defa2..0ab83108e079b10ac176eb21496163d48150c6be 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -592,8 +592,15 @@ is bound, write a message and exit on an error.  If
 (setf *package* (find-package :asdf-test))
 
 (defmacro def-test-system (name &rest rest)
-  `(apply (asym :register-system-definition) ',name :pathname ,*test-directory*
-          :source-file nil ',rest))
+  (etypecase name
+    (symbol
+     `(apply (asym :register-system-definition) ',name
+             :pathname ,*test-directory*
+             :source-file nil ',rest))
+    (string
+     `(apply (asym :register-system-definition) ,name
+             :pathname ,*test-directory*
+             :source-file nil ',rest))))
 
 (defun in-plan-p (plan x) (member x (acall :plan-actions plan) :key (asym :action-path) :test 'equal))