diff --git a/ChangeLog b/ChangeLog
index 10c17d8b5..f5468b161 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-04 Peter Stephenson
+
+ * 31369: Completion/Base/Utility/_comp_locale: action if locale
+ command is not usable.
+
2013-04-29 Bart Schaefer
* 31361: Src/init.c: handle negative optno ("no" prefix used)
diff --git a/Completion/Base/Utility/_comp_locale b/Completion/Base/Utility/_comp_locale
index 19870435a..e55338b97 100644
--- a/Completion/Base/Utility/_comp_locale
+++ b/Completion/Base/Utility/_comp_locale
@@ -7,7 +7,14 @@
# This exports new locale settings, so should only
# be run in a subshell. A typical use is in a $(...).
-local ctype=${${(f)"$(locale 2>/dev/null)"}:#^LC_CTYPE=*}
-unset -m LC_\*
-[[ -n $ctype ]] && eval export $ctype
+local ctype
+
+if ctype=${${(f)"$(locale 2>/dev/null)"}:#^LC_CTYPE=*}; then
+ unset -m LC_\*
+ [[ -n $ctype ]] && eval export $ctype
+else
+ ctype=${LC_ALL:-${LC_CTYPE:-${LANG:-C}}}
+ unset -m LC_\*
+ export LC_CTYPE=$ctype
+fi
export LANG=C