Index: /trunk/ccl/level-1/l1-files.lisp
===================================================================
--- /trunk/ccl/level-1/l1-files.lisp	(revision 5627)
+++ /trunk/ccl/level-1/l1-files.lisp	(revision 5628)
@@ -204,6 +204,6 @@
 (defun %pathname-version (pathname)
   (if (logical-pathname-p pathname)
-      (%logical-pathname-version pathname)
-      :newest))
+    (%logical-pathname-version pathname)
+    (%physical-pathname-version pathname)))
 
 
@@ -215,5 +215,5 @@
 (defun pathname-version (thing)  ; redefined later in this file
   (declare (ignore thing))
-  :unspecific)
+  nil)
 
 (defmethod print-object ((pathname pathname) stream)
@@ -339,7 +339,8 @@
 (defun file-namestring (path)
   "Return a string representation of the name used in the pathname."
-  (let* ((name (pathname-name path))
+  (let* ((path (pathname path))
+         (name (pathname-name path))
          (type (pathname-type path))
-         (version (pathname-version path)))
+         (version (if (typep path 'logical-pathname) (pathname-version path))))
     (file-namestring-from-parts name type version)))
 
@@ -408,5 +409,5 @@
   (if (neq host :unspecific)
     (%cons-logical-pathname dir name type host version)
-    (%cons-pathname dir name type)))
+    (%cons-pathname dir name type version)))
 
 (defun pathname (path)
@@ -452,5 +453,5 @@
         (setq name (%std-name-component (%substr sstr start-pos end-pos))))
       (if (eq host :unspecific)
-	(%cons-pathname directory name type)
+	(%cons-pathname directory name type version)
         (%cons-logical-pathname directory name type host version)))))
 
@@ -510,5 +511,5 @@
   (setq path
         (if (eq host :unspecific)
-          (%cons-pathname directory name type)
+          (%cons-pathname directory name type version)
           (%cons-logical-pathname
 	   (or directory
@@ -751,10 +752,10 @@
   (typecase path
     (logical-pathname (%logical-pathname-version path))
-    (pathname :unspecific)
+    (pathname (%physical-pathname-version path))
     (string
      (multiple-value-bind (sstr start end) (get-sstring path)
        (multiple-value-bind (newstart host) (pathname-directory-end sstr start end)
 	 (if (eq host :unspecific)
-	   :unspecific
+	   nil
 	   (pathname-version-sstr sstr newstart end)))))
     (t (report-bad-arg path pathname-arg-type))))
