diff --git a/ChangeLog b/ChangeLog
index 5d57311d50dd8a56d2a4fb9a4f5323c9282adf4a..0f2adb2ce7862f5786adc860bc5a7fda8e2efcda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,7 +9,8 @@ CVS code -
 	- Disable VSTOP keystroke.  Stops people accidentally locking up
 	  nano (suggested by David Benbennick).
 	- Pluralize messages with ngettext() where needed. (David
-	  Benbennick)
+	  Benbennick)  Tweaked to compile on systems lacking ngettext()
+	  by DLR (problem found by Ken Tyler).
 	- Update nano.1 and nano.1.html to show that nano now does an
 	  emergency save on receiving SIGHUP or SIGTERM. (DLR)
 	- Don't include "nowrap" in the long options if
diff --git a/configure.ac b/configure.ac
index 5ae554b4c0317fcf32ae31351f15352a1b3caa7a..64d2a1aac5403a6b4118f4062db319307a2f115c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -217,7 +217,11 @@ AC_MSG_WARN([*** Can not use slang when cross-compiling])),
     esac], [AC_MSG_RESULT(no)])
 
 dnl Checks for functions
-AC_CHECK_FUNCS(snprintf vsnprintf)
+AC_CHECK_FUNCS(ngettext snprintf vsnprintf)
+if test "x$ac_cv_func_ngettext" = "xno"
+then
+	AC_DEFINE(NO_NGETTEXT, 1, [Defined if ngettext() is unavailable])
+fi
 if test "x$ac_cv_func_snprintf" = "xno" -o "xac_cv_func_vsnprintf" = "xno"
 then
 	AM_PATH_GLIB(1.2.4,,
diff --git a/nano.h b/nano.h
index cae56d0b99abcb754374153dd85e1cf893a233fe..bceb2a8d382214af84097c27bed363b90b34caa7 100644
--- a/nano.h
+++ b/nano.h
@@ -51,6 +51,9 @@
 #    include <libintl.h>
 #  endif
 #  define _(string) gettext(string)
+#  ifdef NO_NGETTEXT
+#    define ngettext(singular, plural, number) gettext(number == 1 ? singular : plural)
+#  endif
 #else
 #  define _(string) (string)
 #  define ngettext(singular, plural, number) number == 1 ? singular : plural