diff --git a/test/test-builtin-source-file-type-3.asd b/test/test-builtin-source-file-type-3.asd
new file mode 100644
index 0000000000000000000000000000000000000000..fac47c9d6e9959a15460cef6d0e3e23786e3f7c1
--- /dev/null
+++ b/test/test-builtin-source-file-type-3.asd
@@ -0,0 +1,5 @@
+(defsystem test-builtin-source-file-type-3
+    :default-component-class cl-source-file.lsp
+    :serial t
+    :components ((:cl-source-file "file1") ; for the package
+                 (:file "test-tmp")))
diff --git a/test/test-builtin-source-file-type-4.asd b/test/test-builtin-source-file-type-4.asd
new file mode 100644
index 0000000000000000000000000000000000000000..84fcf68062bb865e22ba4e5815b63940cc05e909
--- /dev/null
+++ b/test/test-builtin-source-file-type-4.asd
@@ -0,0 +1,5 @@
+(defsystem test-builtin-source-file-type-4
+  :default-component-class cl-source-file.lsp
+  :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
index e9dbdc54e99eb363f0e6aa173f39060889c2f14e..523653a05d45fd4f0689ec5e7114373d0a4cae51 100644
--- a/test/test-builtin-source-file-type.script
+++ b/test/test-builtin-source-file-type.script
@@ -12,4 +12,14 @@
           '("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*"))))
+ (assert (symbol-value (read-from-string "test-package::*test-tmp-cl*")))
+ (asdf:load-system 'test-builtin-source-file-type-3 :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-4 :verbose t)
+ (assert (symbol-value (read-from-string "test-package::*test-tmp-cl*")))
+ )
diff --git a/test/test-tmp.lsp b/test/test-tmp.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..7e8dd8594e9a76189926b11d1fd2641ee0744aa9
--- /dev/null
+++ b/test/test-tmp.lsp
@@ -0,0 +1,10 @@
+;; part of the test-module-pathnames test
+
+(in-package #:test-package)
+
+(defparameter *test-tmp-cl* t)
+
+(eval-when (:compile-toplevel :execute)
+  (format t "compiling test-tmp.cl~%"))
+(eval-when (:load-toplevel :execute)
+  (format t "loading test-tmp.cl~%"))