diff --git a/code/pathname.lisp b/code/pathname.lisp
index acb083dc12b1bb466661054aa75bfc9746695b7b..0eb6d8babfaa1728c9bb6eca0b151d37132bef5f 100644
--- a/code/pathname.lisp
+++ b/code/pathname.lisp
@@ -4,7 +4,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pathname.lisp,v 1.70 2004/10/09 14:41:01 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/pathname.lisp,v 1.71 2004/10/22 18:30:32 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -826,7 +826,7 @@ a host-structure or string."
 	  (namestring-parse-error-namestring condition)
 	  (namestring-parse-error-offset condition)))
 
-(define-condition namestring-parse-error (parse-error)
+(define-condition namestring-parse-error (parse-error type-error)
   ((complaint :reader namestring-parse-error-complaint :initarg :complaint)
    (arguments :reader namestring-parse-error-arguments :initarg :arguments
 	      :initform nil)
@@ -1827,6 +1827,10 @@ a host-structure or string."
 	   :format-arguments (list pathspec)
 	   :datum pathspec
 	   :expected-type '(satisfies logical-pathname-namestring-p)))
+	;; Make sure the result is a logical pathname.  This can
+	;; happen if the pathspec is stream, and the stream was opened
+	;; with a pathname instead of a logical-pathname.
+	(check-type res logical-pathname)
 	res)))