diff --git a/uiop/os.lisp b/uiop/os.lisp
index 98462e3977259c8753b50b3e5d33adc9328e6738..a00119bf026023f18c2775ec66df642835bc3510 100644
--- a/uiop/os.lisp
+++ b/uiop/os.lisp
@@ -85,7 +85,8 @@ use getenvp to return NIL in such a case."
     #+(or abcl clisp ecl xcl) (ext:getenv x)
     #+allegro (sys:getenv x)
     #+clozure (ccl:getenv x)
-    #+(or cmu scl) (cdr (assoc x ext:*environment-list* :test #'string=))
+    #+cmu (unix:unix-getenv x)
+    #+scl (cdr (assoc x ext:*environment-list* :test #'string=))
     #+cormanlisp
     (let* ((buffer (ct:malloc 1))
            (cname (ct:lisp-string-to-c-string x))