diff --git a/src/code/describe.lisp b/src/code/describe.lisp
index b1bd93f8cbecc6f927e935198eadc63f6c532f05..3616b3616560e90fd7505273f1309a06b9c6f665 100644
--- a/src/code/describe.lisp
+++ b/src/code/describe.lisp
@@ -313,11 +313,12 @@
   (let ((info (kernel:%code-debug-info code-obj)))
     (when info
       (let ((sources (c::debug-info-source info)))
-	(format t (intl:gettext "~&On ~A it was compiled from:")
-		(format-universal-time nil
-				       (c::debug-source-compiled
-					(first sources))
-				       :style :iso8601))
+	(when sources
+	  (format t (intl:gettext "~&On ~A it was compiled from:")
+		  (format-universal-time nil
+					 (c::debug-source-compiled
+					  (first sources))
+					 :style :iso8601)))
 	(dolist (source sources)
 	  (let ((name (c::debug-source-name source)))
 	    (ecase (c::debug-source-from source)
diff --git a/tests/issues.lisp b/tests/issues.lisp
index b02fc1266886d13ed1a6771d2f3fe786274ae9ba..26647dd265ff98812ea83ec93f5fea08a98b88af 100644
--- a/tests/issues.lisp
+++ b/tests/issues.lisp
@@ -298,3 +298,15 @@
 	(assert-eql (length in-string) (length out-string))
 	(assert-equal in-string out-string)))))
 
+
+
+(define-test issue.30
+    (:tag :issues)
+  (let* ((test-file #.(merge-pathnames #p"resources/issue-30.lisp" cl:*load-pathname*))
+	 (fasl-file (compile-file-pathname test-file)))
+    ;; Compiling and loading the test file should succeed without
+    ;; errors.
+    (assert-true (pathnamep test-file))
+    (assert-true (pathnamep fasl-file))
+    (assert-equalp (list fasl-file nil nil)
+		  (multiple-value-list (compile-file test-file :load t)))))
diff --git a/tests/resources/issue-30.lisp b/tests/resources/issue-30.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..d924295797b9d8062458a5bce9b49d63f3de5d3a
--- /dev/null
+++ b/tests/resources/issue-30.lisp
@@ -0,0 +1,4 @@
+(defun foo ()
+  (print "Hello world"))
+
+(describe 'foo)