diff --git a/plugins/genpass/genpass.plugin.zsh b/plugins/genpass/genpass.plugin.zsh
index e7f86bf7a..e6a1cef34 100644
--- a/plugins/genpass/genpass.plugin.zsh
+++ b/plugins/genpass/genpass.plugin.zsh
@@ -73,8 +73,19 @@ genpass-monkey() {
 
 genpass-xkcd() {
   # Generates a 128-bit XKCD-style passphrase
-  # EG, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster
+  # e.g, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster
   # Can take a numerical argument for generating extra passwords
+
+  if (( ! $+commands[shuf] )); then
+    echo >&2 "$0: \`shuf\` command not found. Install coreutils (\`brew install coreutils\` on macOS)."
+    return 1
+  fi
+
+  if [[ ! -e /usr/share/dict/words ]]; then
+    echo >&2 "$0: no wordlist found in \`/usr/share/dict/words\`. Install one first."
+    return 1
+  fi
+
   local -i i num
 
   [[ $1 =~ '^[0-9]+$' ]] && num=$1 || num=1
@@ -90,6 +101,6 @@ genpass-xkcd() {
 
   for i in {1..$num}; do
     printf "$n-"
-    printf "$dict" | shuf -n "$n" | paste -sd '-'
+    printf "$dict" | shuf -n "$n" | paste -sd '-' -
   done
 }