diff --git a/test/test-builtin-source-file-type-1.asd b/test/test-builtin-source-file-type-1.asd
new file mode 100644
index 0000000000000000000000000000000000000000..a7065812a4138c38b57ae161dba5f78aae950ad9
--- /dev/null
+++ b/test/test-builtin-source-file-type-1.asd
@@ -0,0 +1,5 @@
+(defsystem test-builtin-source-file-type-1
+    :default-component-class cl-source-file.cl
+    :serial t
+    :components ((:cl-source-file "file1") ; for the package
+                 (:file "test-tmp")))
diff --git a/test/test-builtin-source-file-type-2.asd b/test/test-builtin-source-file-type-2.asd
new file mode 100644
index 0000000000000000000000000000000000000000..ae2dab6d18b0b60c0cec667b1ebfcca88d85cde2
--- /dev/null
+++ b/test/test-builtin-source-file-type-2.asd
@@ -0,0 +1,5 @@
+(defsystem test-builtin-source-file-type-2
+  :default-component-class cl-source-file.cl
+  :serial t
+  :components ((:file "file1" :type "lisp") ; for package
+               (:file "test-tmp")))
diff --git a/test/test-builtin-source-file-type.script b/test/test-builtin-source-file-type.script
new file mode 100644
index 0000000000000000000000000000000000000000..e9dbdc54e99eb363f0e6aa173f39060889c2f14e
--- /dev/null
+++ b/test/test-builtin-source-file-type.script
@@ -0,0 +1,15 @@
+;;; -*- Lisp -*-
+(load "script-support.lisp")
+(load-asdf)
+
+(quit-on-error
+ (setf asdf:*central-registry* '(*default-pathname-defaults*))
+ (asdf:load-system 'test-builtin-source-file-type-1 :verbose t)
+ (assert (symbol-value (read-from-string "test-package::*test-tmp-cl*")))
+ (assert
+   (equal (mapcar #'pathname-type
+                  (mapcar #'asdf:component-pathname (asdf:module-components (asdf:find-system :test-source-file-type-1))))
+          '("lisp" "cl")))
+ (delete-package :test-package)
+ (asdf:load-system 'test-builtin-source-file-type-2 :verbose t)
+ (assert (symbol-value (read-from-string "test-package::*test-tmp-cl*"))))