diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 562748da4a75e1eab696bc219f8450630404cd2d..8f251bb850c619ac39eb9ba5617b629819cf3075 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -441,8 +441,16 @@ (define-public zsh
                (base32
                 "09yyaadq738zlrnlh1hd3ycj1mv3q5hh4xl1ank70mjnqm6bbi6w"))))
     (build-system gnu-build-system)
-    (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre"
-                                     "--enable-maildir-support")
+    (arguments `(#:configure-flags
+                 `("--with-tcsetpgrp"
+                  "--enable-pcre"
+                  "--enable-maildir-support"
+                  ;; share/zsh/site-functions isn't populated
+                  "--disable-site-fndir"
+                  ,(string-append
+                    "--enable-additional-fpath="
+                    "/usr/local/share/zsh/site-functions," ; for foreign OS
+                    "/run/current-system/profile/share/zsh/site-functions"))
                  #:phases
                  (modify-phases %standard-phases
                    (add-before 'configure 'fix-sh