diff --git a/asdf.asd b/asdf.asd
index 14f4fd291dc4f796da64a5fa62a499fbfc43ebc7..279ee54cea7310bd8b45257ecb87199d665093a2 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -74,7 +74,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.28.7" ;; to be automatically updated by make bump-version
+  :version "2.28.8" ;; to be automatically updated by make bump-version
   :depends-on ()
   #+asdf3 :encoding #+asdf3 :utf-8
   ;; For most purposes, asdf itself specially counts as a builtin system.
diff --git a/header.lisp b/header.lisp
index a749020acead297746d82571ebe32d3bf2ff251c..7eb3bde33917915d4364a5c896c2711de82221b4 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.28.7: Another System Definition Facility.
+;;; This is ASDF 2.28.8: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/lisp-action.lisp b/lisp-action.lisp
index 7e4876a3a19ecd98803e1beb983450e0e180308c..bfd5d4822f9a02779c539fbf9feaf2769c9b991c 100644
--- a/lisp-action.lisp
+++ b/lisp-action.lisp
@@ -130,10 +130,8 @@
       `(,f ;; the fasl is the primary output, in first position
         #+clisp
         ,@`(,(make-pathname :type "lib" :defaults f))
-        #+(or clozure sbcl)
-        ,@(let ((s (component-system c)))
-            (unless (builtin-system-p s) ; includes ASDF itself
-              `(,(make-pathname :type (warnings-file-type) :defaults f))))
+        ,@(when (and *warnings-file-type* (not (builtin-system-p (component-system c))))
+            `(,(make-pathname :type *warnings-file-type* :defaults f)))
         #+ecl
         ,@(unless (use-ecl-byte-compiler-p)
             `(,(compile-file-pathname i :type :object)))
@@ -149,16 +147,15 @@
     (declare (ignorable o c))
     nil)
   (defmethod perform ((o compile-op) (c system))
-    (when *warnings-file-type*
+    (when (and *warnings-file-type* (not (builtin-system-p c)))
       (perform-lisp-warnings-check o c)))
   (defmethod input-files ((o compile-op) (c system))
-    (when *warnings-file-type*
-      (unless (builtin-system-p c)
-        ;; The most correct way to do it would be to use:
-        ;; (traverse-sub-actions o c :other-systems nil :keep-operation 'compile-op :keep-component 'cl-source-file)
-        ;; but it's expensive and we don't care too much about file order or ASDF extensions.
-        (loop :for sub :in (sub-components c :type 'cl-source-file)
-              :nconc (remove-if-not 'warnings-file-p (output-files o sub))))))
+    (when (and *warnings-file-type* (not (builtin-system-p c)))
+      ;; The most correct way to do it would be to use:
+      ;; (traverse-sub-actions o c :other-systems nil :keep-operation 'compile-op :keep-component 'cl-source-file)
+      ;; but it's expensive and we don't care too much about file order or ASDF extensions.
+      (loop :for sub :in (sub-components c :type 'cl-source-file)
+            :nconc (remove-if-not 'warnings-file-p (output-files o sub)))))
   (defmethod output-files ((o compile-op) (c system))
     (when (and *warnings-file-type* (not (builtin-system-p c)))
       (if-let ((pathname (component-pathname c)))
diff --git a/upgrade.lisp b/upgrade.lisp
index 3593adc33c71c71aa5b240a1b123c4a7ea737ae2..47a8837bed6ad394476ae7aa59743a2f49ac05ae 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
          ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
          ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
          ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
-         (asdf-version "2.28.7")
+         (asdf-version "2.28.8")
          (existing-version (asdf-version)))
     (setf *asdf-version* asdf-version)
     (when (and existing-version (not (equal asdf-version existing-version)))
diff --git a/version.lisp-expr b/version.lisp-expr
index 17fe02a28d451bf82c3f10bc74d456e671af587c..c7114f1ceab39e43bd9d97bfa64520fff722a638 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.28.7"
+"2.28.8"