diff --git a/operate.lisp b/operate.lisp
index 7d9dbb92c2a99a0baeca08099e44e28a091defe4..af0a836ce9fb1c28baba0efc66adf7a6d77398c0 100644
--- a/operate.lisp
+++ b/operate.lisp
@@ -212,10 +212,9 @@ the implementation's REQUIRE rather than by internal ASDF mechanisms."))
     ;; but must check whether we can use find-system and short-circuit cl:require.
     ;; Otherwise, calling cl:require could result in nasty reentrant calls between
     ;; cl:require and asdf:operate that could potentially blow up the stack.
-    (let* ((module (car arguments))
+    (let* ((module (car arguments)) ;; NB: we already checked that it was not null
            (name (string-downcase module))
            (system (find-system name nil)))
-      (assert module)
       (or system (let ((system (make-instance 'require-system :name name)))
                    (register-system system)
                    system))))
@@ -259,10 +258,11 @@ the implementation's REQUIRE rather than by internal ASDF mechanisms."))
   ;; It is defined here to resolve what would otherwise be forward package references.
   (defun mark-component-preloaded (component)
     "Mark a component as preloaded."
-    ;; Recurse to children, so asdf/plan will hopefully be happy.
-    (map () 'mark-component-preloaded (component-children component))
-    ;; Mark the timestamps of the common lisp-action operations as 0.
-    (let ((times (component-operation-times component)))
-      (dolist (o '(load-op compile-op prepare-op))
-        (setf (gethash o times) 0)))))
+    (let ((component (find-component component nil :registered t)))
+      ;; Recurse to children, so asdf/plan will hopefully be happy.
+      (map () 'mark-component-preloaded (component-children component))
+      ;; Mark the timestamps of the common lisp-action operations as 0.
+      (let ((times (component-operation-times component)))
+        (dolist (o '(load-op compile-op prepare-op))
+          (setf (gethash o times) 0))))))