--- gtk3-3.22.28/gtk/gtkcalendar.c.orig	2018-02-20 22:46:27.054035086 +0200
+++ gtk3-3.22.28/gtk/gtkcalendar.c	2018-02-20 22:51:53.795033688 +0200
@@ -58,9 +58,7 @@
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
-#ifdef HAVE__NL_TIME_FIRST_WEEKDAY
 #include <langinfo.h>
-#endif
 #include <string.h>
 #include <stdlib.h>
 #include <time.h>
@@ -693,10 +691,6 @@
   gint i;
 #ifdef G_OS_WIN32
   wchar_t wbuffer[100];
-#else
-  static const char *month_format = NULL;
-  char buffer[255];
-  time_t tmp_time;
 #endif
   GtkCalendarPrivate *priv;
   gchar *year_before;
@@ -718,9 +712,7 @@
     for (i=0; i<7; i++)
       {
 #ifndef G_OS_WIN32
-        tmp_time= (i+3)*86400;
-        strftime (buffer, sizeof (buffer), "%a", gmtime (&tmp_time));
-        default_abbreviated_dayname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
+        default_abbreviated_dayname[i] = g_locale_to_utf8 (nl_langinfo (ABDAY_1 + i), -1, NULL, NULL, NULL);
 #else
         if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SABBREVDAYNAME1 + (i+6)%7,
                              wbuffer, G_N_ELEMENTS (wbuffer)))
@@ -734,23 +726,7 @@
     for (i=0; i<12; i++)
       {
 #ifndef G_OS_WIN32
-        tmp_time=i*2764800;
-        if (G_UNLIKELY (month_format == NULL))
-          {
-            buffer[0] = '\0';
-            month_format = "%OB";
-            strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
-            /* "%OB" is not supported in Linux with glibc < 2.27  */
-            if (!strcmp (buffer, "%OB") || !strcmp (buffer, "OB") || !strcmp (buffer, ""))
-              {
-                month_format = "%B";
-                strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
-              }
-          }
-        else
-          strftime (buffer, sizeof (buffer), month_format, gmtime (&tmp_time));
-
-        default_monthname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL);
+        default_monthname[i] = g_locale_to_utf8 (nl_langinfo (__ALTMON_1 + i), -1, NULL, NULL, NULL);
 #else
         if (!GetLocaleInfoW (GetThreadLocale (), LOCALE_SMONTHNAME1 + i,
                              wbuffer, G_N_ELEMENTS (wbuffer)))
