diff --git a/code/filesys.lisp b/code/filesys.lisp
index 33834f0708d6340757dd14004c77085f83f56483..f588557acaa4e4615acdf7f8aa25bf6e6f646898 100644
--- a/code/filesys.lisp
+++ b/code/filesys.lisp
@@ -6,7 +6,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.59 2001/02/22 19:35:01 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.60 2001/02/23 18:56:11 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -185,16 +185,16 @@
 	     (values :wild (- end 4)))
 	    (t
 	     (do ((i (- end 2) (1- i)))
-		 ((< i (+ start 2)) (values :newest nil))
+		 ((< i (+ start 2)) (values :newest end))
 	       (let ((char (schar namestr i)))
 		 (when (eql char #\~)
-		   (return (and (char= (schar namestr (1- i)) #\.)
-				(values (parse-integer namestr
-						       :start (1+ i)
-						       :end (1- end))
-					(1- i)))))
+		   (return (if (char= (schar namestr (1- i)) #\.)
+			       (values (parse-integer namestr :start (1+ i)
+						      :end (1- end))
+				       (1- i))
+			       (values :newest end))))
 		 (unless (char<= #\0 char #\9)
-		   (return nil))))))
+		   (return (values :newest end)))))))
     (let ((last-dot (position #\. namestr :start (1+ start) :end vstart
 			      :from-end t)))
       (cond (last-dot