diff -Naur \dll\iup\a/src/win/iupwin_font.c \dll\iup\b/src/win/iupwin_font.c
--- \dll\iup\a/src/win/iupwin_font.c	2020-05-01 19:01:58.000000000 -0300
+++ \dll\iup\b/src/win/iupwin_font.c	2020-07-10 13:26:12.913293500 -0300
@@ -39,7 +39,7 @@
 {
   HFONT hFont;
   int height_pixels;  /* negative value */
-  char typeface[50] = "";
+  char typeface[32] = ""; /* MSDN: The length of this string must not exceed 32 characters, including the terminating null character */
   int size = 8;
   int is_bold = 0,
     is_italic = 0, 
@@ -51,7 +51,7 @@
 
   /* Check if the font already exists in cache */
   IwinFont* fonts = (IwinFont*)iupArrayGetData(win_fonts);
-  for (i = 0; i < count; i++)
+  for (i = 0; i <= count; ++i)
   {
     if (iupStrEqualNoCase(font, fonts[i].font))
       return &fonts[i];
@@ -60,11 +60,6 @@
   if (!iupGetFontInfo(font, typeface, &size, &is_bold, &is_italic, &is_underline, &is_strikeout))
     return NULL;
 
-  /* Map standard names to native names */
-  mapped_name = iupFontGetWinName(typeface);
-  if (mapped_name)
-    strcpy(typeface, mapped_name);
-
   /* get in pixels */
   if (size < 0)  
     height_pixels = size;    /* already in pixels */
@@ -74,6 +69,11 @@
   if (height_pixels == 0)
     return NULL;
 
+  /* Map standard names to native names */
+  mapped_name = iupFontGetWinName(typeface);
+  if (mapped_name)
+    strcpy(typeface, mapped_name);
+
   hFont = CreateFont(height_pixels, 0, 0, 0,
                     (is_bold) ? FW_BOLD : FW_NORMAL,
                     is_italic, is_underline, is_strikeout,