diff -Naur \dll\iup\a/src/iup_draw.c \dll\iup\b/src/iup_draw.c
--- \dll\iup\a/src/iup_draw.c	2020-07-03 09:04:57.000000000 -0300
+++ \dll\iup\b/src/iup_draw.c	2020-07-12 20:42:54.777810600 -0300
@@ -965,8 +965,8 @@
     break;
   }
 
-  iupdrvDrawPolygon(dc, points, 3, color, IUP_DRAW_FILL, 1);
-  iupdrvDrawPolygon(dc, points, 3, color, IUP_DRAW_STROKE, 1);
+  iupdrvDrawPolygon(dc, points, sizeof(points) / sizeof(int), color, IUP_DRAW_FILL, 1);
+  iupdrvDrawPolygon(dc, points, sizeof(points) / sizeof(int), color, IUP_DRAW_STROKE, 1);
 }
 
 IUP_SDK_API void iupFlatDrawCheckMark(IdrawCanvas* dc, int xmin, int xmax, int ymin, int ymax, const char* color_str, const char* bgcolor, int active)
@@ -984,7 +984,7 @@
   points[4] = xmax;
   points[5] = ymin;
 
-  iupdrvDrawPolygon(dc, points, 3, color, IUP_DRAW_STROKE, 2);
+  iupdrvDrawPolygon(dc, points, sizeof(points) / sizeof(int), color, IUP_DRAW_STROKE, 2);
 }
 
 IUP_SDK_API void iupFlatDrawDrawCircle(IdrawCanvas* dc, int xc, int yc, int radius, int fill, int line_width, char *fgcolor, char *bgcolor, int active)
diff -Naur \dll\iup\a/srcglcontrols/iup_gldraw.c \dll\iup\b/srcglcontrols/iup_gldraw.c
--- \dll\iup\a/srcglcontrols/iup_gldraw.c	2019-12-05 11:58:58.000000000 -0300
+++ \dll\iup\b/srcglcontrols/iup_gldraw.c	2020-07-12 20:42:17.977739900 -0300
@@ -377,8 +377,8 @@
     break;
   }
 
-  iupGLDrawPolygon(ih, points, 3, color, active);
-  iupGLDrawPolyline(ih, points, 3, 1, color, active, 1);
+  iupGLDrawPolygon(ih, points, sizeof(points) / sizeof(int), color, active);
+  iupGLDrawPolyline(ih, points, sizeof(points) / sizeof(int), 1, color, active, 1);
 }
 
 static int iGLIsOpenGL2orMore(void)
diff -Naur \dll\iup\a/srcglcontrols/iup_glscrollbars.c \dll\iup\b/srcglcontrols/iup_glscrollbars.c
--- \dll\iup\a/srcglcontrols/iup_glscrollbars.c	2020-01-15 14:13:51.000000000 -0300
+++ \dll\iup\b/srcglcontrols/iup_glscrollbars.c	2020-07-12 20:46:18.473726500 -0300
@@ -391,8 +391,10 @@
     ymax = height - 1;
     range = ymax - ymin - 2 * sb_size;
     sb_range = sb_ymax - sb_ymin;
-
-    posy = ((start_pos - sb_ymin) * range) / sb_range;
+    if (sb_range != 0)
+      posy = ((start_pos - sb_ymin) * range) / sb_range;
+    else
+      posy = ((start_pos - sb_ymin) * range);
     posy += ymin + sb_size;
 
     posy += diff_y;
@@ -425,8 +427,10 @@
     xmax = width - 1;
     range = xmax - xmin - 2 * sb_size;
     sb_range = sb_xmax - sb_xmin;
-
-    posx = ((start_pos - sb_xmin) * range) / sb_range;
+    if (sb_range != 0)
+      posx = ((start_pos - sb_xmin) * range) / sb_range;
+    else
+      posx = ((start_pos - sb_xmin) * range);
     posx += xmin + sb_size;
 
     posx += diff_x;