diff --git a/tools/wmc/lang.c b/tools/wmc/lang.c
index b045612bb65c3b555dcab25fecf8231eff0a01fd..07022f7c79a594d34fe72c770025abc3b72fa056 100644
--- a/tools/wmc/lang.c
+++ b/tools/wmc/lang.c
@@ -162,14 +162,12 @@ static const language_t languages[] = {
 	{0x500A, 850, 1252, "Spanish", "Puerto Rico"}
 };
 
-#define NLAN	(sizeof(languages)/sizeof(languages[0]))
-
 void show_languages(void)
 {
 	unsigned int i;
 	printf(" Code  | DOS-cp | WIN-cp |   Language   | Country\n");
 	printf("-------+--------+--------+--------------+---------\n");
-	for(i = 0; i < NLAN; i++)
+	for(i = 0; i < ARRAY_SIZE(languages); i++)
 		printf("0x%04x | %5d  | %5d   | %-12s | %s\n",
 			languages[i].id,
 			languages[i].doscp,
@@ -185,7 +183,8 @@ static int langcmp(const void *p1, const void *p2)
 
 const language_t *find_language(unsigned id)
 {
-	return (const language_t *)bsearch(&id, languages, NLAN, sizeof(languages[0]), langcmp);
+	return (const language_t *)bsearch(&id, languages, ARRAY_SIZE(languages),
+		sizeof(languages[0]), langcmp);
 }
 
 void show_codepages(void)
diff --git a/tools/wmc/po.c b/tools/wmc/po.c
index 6db02c8a729a005493728c272edbe466cf1265b7..3529a5b99cf65a5ef5080184cfaa9b028466eab7 100644
--- a/tools/wmc/po.c
+++ b/tools/wmc/po.c
@@ -666,10 +666,10 @@ void add_translations( const char *po_dir )
         if ((p = strchr( buffer, '#' ))) *p = 0;
         for (tok = strtok( buffer, " \t\r\n" ); tok; tok = strtok( NULL, " \t\r\n" ))
         {
-            for (i = 0; i < sizeof(languages)/sizeof(languages[0]); i++)
+            for (i = 0; i < ARRAY_SIZE(languages); i++)
                 if (!strcmp( tok, languages[i].name )) break;
 
-            if (i == sizeof(languages)/sizeof(languages[0]))
+            if (i == ARRAY_SIZE(languages))
                 error( "unknown language '%s'\n", tok );
 
             name = strmake( "%s/%s.mo", po_dir, tok );