diff --git a/uiop/os.lisp b/uiop/os.lisp
index d90e1abb4d5b65c421f6691cd5a40652234e1b0e..2a714b22658abf8c2083d567e90aaa0d0833171e 100644
--- a/uiop/os.lisp
+++ b/uiop/os.lisp
@@ -247,9 +247,9 @@ suitable for use as a directory name to segregate Lisp FASLs, C dynamic librarie
 
   (defun getcwd ()
     "Get the current working directory as per POSIX getcwd(3), as a pathname object"
-    (or #+abcl (symbol-call :asdf/filesystem :parse-native-namestring
-                            (java:jstatic "getProperty" "java.lang.System" "user.dir")
-                                                     :ensure-directory t)
+    (or #+abcl (truename (symbol-call :asdf/filesystem :parse-native-namestring
+                          (java:jstatic "getProperty" "java.lang.System" "user.dir")
+                          :ensure-directory t))
         #+allegro (excl::current-directory)
         #+clisp (ext:default-directory)
         #+clozure (ccl:current-directory)