diff --git a/basis/unix/unix.factor b/basis/unix/unix.factor
index 3ac845aab4..80e0dd2c9b 100644
--- a/basis/unix/unix.factor
+++ b/basis/unix/unix.factor
@@ -2,7 +2,7 @@
 ! Copyright (C) 2008 Eduardo Cavazos.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors alien alien.c-types alien.libraries
-alien.syntax byte-arrays classes.struct combinators
+alien.syntax byte-vectors classes.struct combinators
 combinators.short-circuit combinators.smart continuations
 generalizations io kernel libc locals macros math namespaces
 sequences sequences.generalizations stack-checker strings system
@@ -67,10 +67,10 @@ M: unix open-file [ open ] unix-system-call ;
         [ utime ] unix-system-call drop ;
 
 : read-symbolic-link ( path -- path )
-    PATH_MAX <byte-array> dup [
-        PATH_MAX
+    PATH_MAX <byte-vector> [
+        underlying>> PATH_MAX
         [ readlink ] unix-system-call
-    ] dip swap head-slice >string ;
+    ] keep swap >>length >string ;
 
 : unlink-file ( path -- ) [ unlink ] unix-system-call drop ;