diff --git a/bundle.lisp b/bundle.lisp
index b5621bb03f9914298ea39de55bfaec61c55efb69..0603d38f35bf61f8cbc3023e78196bbe86547a6a 100644
--- a/bundle.lisp
+++ b/bundle.lisp
@@ -340,7 +340,7 @@ for all the linkable object files associated with the system or its dependencies
                                     (typep move-here '(or pathname string)))
                                (ensure-pathname move-here :namestring :lisp :ensure-directory t)
                                (system-relative-pathname system "asdf-output/")))
-           (operation (apply #'operate operation-name
+           (operation (apply 'operate operation-name
                              system
                              (remove-plist-keys '(:monolithic :type :move-here) args)))
            (system (find-system system))
@@ -366,7 +366,7 @@ for all the linkable object files associated with the system or its dependencies
   ;; As is, it is not such a useful interface.
   (defun bundle-system (system &rest args &key force (verbose t) version &allow-other-keys)
     (declare (ignore force verbose version))
-    (apply #'operate 'deliver-asd-op system args)))
+    (apply 'operate 'deliver-asd-op system args)))
 
 ;;;
 ;;; LOAD-BUNDLE-OP
@@ -530,7 +530,7 @@ for all the linkable object files associated with the system or its dependencies
   (defun system-module-pathname (module)
     (let ((name (coerce-name module)))
       (some
-       #'probe-file
+       'file-exists-p
        (list
         #+clasp (compile-file-pathname (make-pathname :name name :defaults "sys:") :output-type :object)
         #+ecl (compile-file-pathname (make-pathname :name name :defaults "sys:") :type :lib)
@@ -548,21 +548,18 @@ for all the linkable object files associated with the system or its dependencies
   (defmethod component-depends-on :around ((o image-op) (c system))
     (destructuring-bind ((lib-op . deps)) (call-next-method)
       (labels ((has-it-p (x) (find x deps :test 'equal :key 'coerce-name))
-               (linkable-system (x)
+               (ensure-linkable-system (x)
 		 (unless (has-it-p x)
-		   (list
-		    (if (and (system-source-directory x)
-			     #+mkcl ;; avoid bug in mkcl 1.1.10
-			     (let ((s (find-system x)))
-			       (or (not (typep s 'prebuilt-system))
-				   (file-exists-p (prebuilt-system-static-library s)))))
-			(find-system x)
-			(make-library-system x))))))
+                   (or (if-let (s (find-system x))
+                         (and (system-source-directory x)
+                              (list s)))
+                       (if-let (p (system-module-pathname x))
+                         (list (make-library-system x p)))))))
         `((,lib-op
            ,@(unless (no-uiop c)
-               (append (linkable-system "cmp")
-                       (or (linkable-system "uiop")
-                           (linkable-system "asdf"))))
+               (append (ensure-linkable-system "cmp")
+                       (or (ensure-linkable-system "uiop")
+                           (ensure-linkable-system "asdf"))))
            ,@deps)))))
 
   (defmethod perform ((o link-op) (c system))